Index: imaps-frontend/node_modules/jspdf/dist/jspdf.node.js.map
===================================================================
--- imaps-frontend/node_modules/jspdf/dist/jspdf.node.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/jspdf/dist/jspdf.node.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,1 @@
+{"version":3,"file":"jspdf.node.js","sources":["../src/libs/globalObject.js","../src/libs/rgbcolor.js","../src/libs/AtobBtoa.js","../src/libs/console.js","../src/libs/md5.js","../src/libs/rc4.js","../src/libs/pdfsecurity.js","../src/libs/pdfname.js","../src/jspdf.js","../src/modules/acroform.js","../src/modules/addimage.js","../src/modules/annotations.js","../src/modules/arabic.js","../src/modules/autoprint.js","../src/modules/canvas.js","../src/modules/cell.js","../src/libs/fontFace.js","../src/modules/context2d.js","../src/modules/filters.js","../src/modules/fileloading.js","../src/modules/html.js","../src/modules/javascript.js","../src/modules/outline.js","../src/modules/jpeg_support.js","../src/libs/png.js","../src/modules/png_support.js","../src/libs/omggif.js","../src/libs/JPEGEncoder.js","../src/modules/gif_support.js","../src/libs/BMPDecoder.js","../src/modules/bmp_support.js","../src/libs/WebPDecoder.js","../src/modules/webp_support.js","../src/modules/rgba_support.js","../src/modules/setlanguage.js","../src/modules/split_text_to_size.js","../src/modules/standard_fonts_metrics.js","../src/modules/ttfsupport.js","../src/modules/svg.js","../src/modules/total_pages.js","../src/modules/viewerpreferences.js","../src/modules/xmp_metadata.js","../src/modules/utf8.js","../src/modules/vfs.js","../src/libs/bidiEngine.js","../src/libs/ttffont.js"],"sourcesContent":["export var globalObject = (function() {\n  return \"undefined\" !== typeof window\n    ? window\n    : \"undefined\" !== typeof global\n    ? global\n    : \"undefined\" !== typeof self\n    ? self\n    : this;\n})();\n","/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link   http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction RGBColor(color_string) {\n  color_string = color_string || \"\";\n  this.ok = false;\n\n  // strip any leading #\n  if (color_string.charAt(0) == \"#\") {\n    // remove # if any\n    color_string = color_string.substr(1, 6);\n  }\n\n  color_string = color_string.replace(/ /g, \"\");\n  color_string = color_string.toLowerCase();\n\n  var channels;\n\n  // before getting into regexps, try simple matches\n  // and overwrite the input\n  var simple_colors = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"00ffff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"0000ff\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"00ffff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dodgerblue: \"1e90ff\",\n    feldspar: \"d19275\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"ff00ff\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgrey: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslateblue: \"8470ff\",\n    lightslategray: \"778899\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"00ff00\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"ff00ff\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370d8\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"d87093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    red: \"ff0000\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    violetred: \"d02090\",\n    wheat: \"f5deb3\",\n    white: \"ffffff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ffff00\",\n    yellowgreen: \"9acd32\"\n  };\n  color_string = simple_colors[color_string] || color_string;\n\n  // array of color definition objects\n  var color_defs = [\n    {\n      re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n      example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n      process: function(bits) {\n        return [parseInt(bits[1]), parseInt(bits[2]), parseInt(bits[3])];\n      }\n    },\n    {\n      re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n      example: [\"#00ff00\", \"336699\"],\n      process: function(bits) {\n        return [\n          parseInt(bits[1], 16),\n          parseInt(bits[2], 16),\n          parseInt(bits[3], 16)\n        ];\n      }\n    },\n    {\n      re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n      example: [\"#fb0\", \"f0f\"],\n      process: function(bits) {\n        return [\n          parseInt(bits[1] + bits[1], 16),\n          parseInt(bits[2] + bits[2], 16),\n          parseInt(bits[3] + bits[3], 16)\n        ];\n      }\n    }\n  ];\n\n  // search through the definitions to find a match\n  for (var i = 0; i < color_defs.length; i++) {\n    var re = color_defs[i].re;\n    var processor = color_defs[i].process;\n    var bits = re.exec(color_string);\n    if (bits) {\n      channels = processor(bits);\n      this.r = channels[0];\n      this.g = channels[1];\n      this.b = channels[2];\n      this.ok = true;\n    }\n  }\n\n  // validate/cleanup values\n  this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r;\n  this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g;\n  this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b;\n\n  // some getters\n  this.toRGB = function() {\n    return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n  };\n  this.toHex = function() {\n    var r = this.r.toString(16);\n    var g = this.g.toString(16);\n    var b = this.b.toString(16);\n    if (r.length == 1) r = \"0\" + r;\n    if (g.length == 1) g = \"0\" + g;\n    if (b.length == 1) b = \"0\" + b;\n    return \"#\" + r + g + b;\n  };\n}\n\nexport { RGBColor };\n","import { globalObject } from \"./globalObject.js\";\n\nvar atob, btoa;\n\n(function() {\n\n  atob = require(\"atob\");\n  btoa = require(\"btoa\");\n})();\n\nexport { atob, btoa };\n","import { globalObject } from \"./globalObject.js\";\n\nfunction consoleLog() {\n  if (globalObject.console && typeof globalObject.console.log === \"function\") {\n    globalObject.console.log.apply(globalObject.console, arguments);\n  }\n}\n\nfunction consoleWarn(str) {\n  if (globalObject.console) {\n    if (typeof globalObject.console.warn === \"function\") {\n      globalObject.console.warn.apply(globalObject.console, arguments);\n    } else {\n      consoleLog.call(null, arguments);\n    }\n  }\n}\n\nfunction consoleError(str) {\n  if (globalObject.console) {\n    if (typeof globalObject.console.error === \"function\") {\n      globalObject.console.error.apply(globalObject.console, arguments);\n    } else {\n      consoleLog(str);\n    }\n  }\n}\nexport var console = {\n  log: consoleLog,\n  warn: consoleWarn,\n  error: consoleError\n};\n","/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\n\nfunction md5cycle(x, k) {\n  var a = x[0],\n    b = x[1],\n    c = x[2],\n    d = x[3];\n\n  a = ff(a, b, c, d, k[0], 7, -680876936);\n  d = ff(d, a, b, c, k[1], 12, -389564586);\n  c = ff(c, d, a, b, k[2], 17, 606105819);\n  b = ff(b, c, d, a, k[3], 22, -1044525330);\n  a = ff(a, b, c, d, k[4], 7, -176418897);\n  d = ff(d, a, b, c, k[5], 12, 1200080426);\n  c = ff(c, d, a, b, k[6], 17, -1473231341);\n  b = ff(b, c, d, a, k[7], 22, -45705983);\n  a = ff(a, b, c, d, k[8], 7, 1770035416);\n  d = ff(d, a, b, c, k[9], 12, -1958414417);\n  c = ff(c, d, a, b, k[10], 17, -42063);\n  b = ff(b, c, d, a, k[11], 22, -1990404162);\n  a = ff(a, b, c, d, k[12], 7, 1804603682);\n  d = ff(d, a, b, c, k[13], 12, -40341101);\n  c = ff(c, d, a, b, k[14], 17, -1502002290);\n  b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n  a = gg(a, b, c, d, k[1], 5, -165796510);\n  d = gg(d, a, b, c, k[6], 9, -1069501632);\n  c = gg(c, d, a, b, k[11], 14, 643717713);\n  b = gg(b, c, d, a, k[0], 20, -373897302);\n  a = gg(a, b, c, d, k[5], 5, -701558691);\n  d = gg(d, a, b, c, k[10], 9, 38016083);\n  c = gg(c, d, a, b, k[15], 14, -660478335);\n  b = gg(b, c, d, a, k[4], 20, -405537848);\n  a = gg(a, b, c, d, k[9], 5, 568446438);\n  d = gg(d, a, b, c, k[14], 9, -1019803690);\n  c = gg(c, d, a, b, k[3], 14, -187363961);\n  b = gg(b, c, d, a, k[8], 20, 1163531501);\n  a = gg(a, b, c, d, k[13], 5, -1444681467);\n  d = gg(d, a, b, c, k[2], 9, -51403784);\n  c = gg(c, d, a, b, k[7], 14, 1735328473);\n  b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n  a = hh(a, b, c, d, k[5], 4, -378558);\n  d = hh(d, a, b, c, k[8], 11, -2022574463);\n  c = hh(c, d, a, b, k[11], 16, 1839030562);\n  b = hh(b, c, d, a, k[14], 23, -35309556);\n  a = hh(a, b, c, d, k[1], 4, -1530992060);\n  d = hh(d, a, b, c, k[4], 11, 1272893353);\n  c = hh(c, d, a, b, k[7], 16, -155497632);\n  b = hh(b, c, d, a, k[10], 23, -1094730640);\n  a = hh(a, b, c, d, k[13], 4, 681279174);\n  d = hh(d, a, b, c, k[0], 11, -358537222);\n  c = hh(c, d, a, b, k[3], 16, -722521979);\n  b = hh(b, c, d, a, k[6], 23, 76029189);\n  a = hh(a, b, c, d, k[9], 4, -640364487);\n  d = hh(d, a, b, c, k[12], 11, -421815835);\n  c = hh(c, d, a, b, k[15], 16, 530742520);\n  b = hh(b, c, d, a, k[2], 23, -995338651);\n\n  a = ii(a, b, c, d, k[0], 6, -198630844);\n  d = ii(d, a, b, c, k[7], 10, 1126891415);\n  c = ii(c, d, a, b, k[14], 15, -1416354905);\n  b = ii(b, c, d, a, k[5], 21, -57434055);\n  a = ii(a, b, c, d, k[12], 6, 1700485571);\n  d = ii(d, a, b, c, k[3], 10, -1894986606);\n  c = ii(c, d, a, b, k[10], 15, -1051523);\n  b = ii(b, c, d, a, k[1], 21, -2054922799);\n  a = ii(a, b, c, d, k[8], 6, 1873313359);\n  d = ii(d, a, b, c, k[15], 10, -30611744);\n  c = ii(c, d, a, b, k[6], 15, -1560198380);\n  b = ii(b, c, d, a, k[13], 21, 1309151649);\n  a = ii(a, b, c, d, k[4], 6, -145523070);\n  d = ii(d, a, b, c, k[11], 10, -1120210379);\n  c = ii(c, d, a, b, k[2], 15, 718787259);\n  b = ii(b, c, d, a, k[9], 21, -343485551);\n\n  x[0] = add32(a, x[0]);\n  x[1] = add32(b, x[1]);\n  x[2] = add32(c, x[2]);\n  x[3] = add32(d, x[3]);\n}\n\nfunction cmn(q, a, b, x, s, t) {\n  a = add32(add32(a, q), add32(x, t));\n  return add32((a << s) | (a >>> (32 - s)), b);\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n  return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n  return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n  return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n  return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nfunction md51(s) {\n  // txt = '';\n  var n = s.length,\n    state = [1732584193, -271733879, -1732584194, 271733878],\n    i;\n  for (i = 64; i <= s.length; i += 64) {\n    md5cycle(state, md5blk(s.substring(i - 64, i)));\n  }\n  s = s.substring(i - 64);\n  var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n  for (i = 0; i < s.length; i++)\n    tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n  tail[i >> 2] |= 0x80 << (i % 4 << 3);\n  if (i > 55) {\n    md5cycle(state, tail);\n    for (i = 0; i < 16; i++) tail[i] = 0;\n  }\n  tail[14] = n * 8;\n  md5cycle(state, tail);\n  return state;\n}\n\n/* there needs to be support for Unicode here,\n * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps\n * by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise\n * I suggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then\n * how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something\n * like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard\n * itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8\n * 8-bit unsigned value arrays.\n */\nfunction md5blk(s) {\n  /* I figured global was faster.   */\n  var md5blks = [],\n    i; /* Andy King said do it this way. */\n  for (i = 0; i < 64; i += 4) {\n    md5blks[i >> 2] =\n      s.charCodeAt(i) +\n      (s.charCodeAt(i + 1) << 8) +\n      (s.charCodeAt(i + 2) << 16) +\n      (s.charCodeAt(i + 3) << 24);\n  }\n  return md5blks;\n}\n\nvar hex_chr = \"0123456789abcdef\".split(\"\");\n\nfunction rhex(n) {\n  var s = \"\",\n    j = 0;\n  for (; j < 4; j++)\n    s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];\n  return s;\n}\n\nfunction hex(x) {\n  for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);\n  return x.join(\"\");\n}\n\n// Converts a 4-byte number to byte string\nfunction singleToByteString(n) {\n  return String.fromCharCode(\n    (n & 0xff) >> 0,\n    (n & 0xff00) >> 8,\n    (n & 0xff0000) >> 16,\n    (n & 0xff000000) >> 24\n  );\n}\n\n// Converts an array of numbers to a byte string\nfunction toByteString(x) {\n  return x.map(singleToByteString).join(\"\");\n}\n\n// Returns the MD5 hash as a byte string\nfunction md5Bin(s) {\n  return toByteString(md51(s));\n}\n\n// Returns MD5 hash as a hex string\nfunction md5(s) {\n  return hex(md51(s));\n}\n\nvar md5Check = md5(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\";\n\nfunction add32(a, b) {\n  if (md5Check) {\n    /* if the md5Check does not match\n     the expected value, we're dealing\n     with an old browser and need\n     this function. */\n    var lsw = (a & 0xffff) + (b & 0xffff),\n      msw = (a >> 16) + (b >> 16) + (lsw >> 16);\n    return (msw << 16) | (lsw & 0xffff);\n  } else {\n    /* this function is much faster,\n    so if possible we use it. Some IEs\n    are the only ones I know of that\n    need the idiotic second function,\n    generated by an if clause.  */\n    return (a + b) & 0xffffffff;\n  }\n}\n\nexport { md5, md5Bin };\n","/**\r\n * @license\r\n * FPDF is released under a permissive license: there is no usage restriction.\r\n * You may embed it freely in your application (commercial or not), with or\r\n * without modifications.\r\n *\r\n * Reference: http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nfunction repeat(str, num) {\r\n  return new Array(num + 1).join(str);\r\n}\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name rc4\r\n * @function\r\n * @param {string} key Byte string of encryption key\r\n * @param {string} data Byte string of data to be encrypted\r\n * @returns {string} Encrypted string\r\n */\r\nfunction rc4(key, data) {\r\n  var lastKey, lastState;\r\n  if (key !== lastKey) {\r\n    var k = repeat(key, ((256 / key.length) >> 0) + 1);\r\n    var state = [];\r\n    for (var i = 0; i < 256; i++) {\r\n      state[i] = i;\r\n    }\r\n    var j = 0;\r\n    for (var i = 0; i < 256; i++) {\r\n      var t = state[i];\r\n      j = (j + t + k.charCodeAt(i)) % 256;\r\n      state[i] = state[j];\r\n      state[j] = t;\r\n    }\r\n    lastKey = key;\r\n    lastState = state;\r\n  } else {\r\n    state = lastState;\r\n  }\r\n  var length = data.length;\r\n  var a = 0;\r\n  var b = 0;\r\n  var out = \"\";\r\n  for (var i = 0; i < length; i++) {\r\n    a = (a + 1) % 256;\r\n    t = state[a];\r\n    b = (b + t) % 256;\r\n    state[a] = state[b];\r\n    state[b] = t;\r\n    k = state[(state[a] + state[b]) % 256];\r\n    out += String.fromCharCode(data.charCodeAt(i) ^ k);\r\n  }\r\n  return out;\r\n}\r\n\r\nexport { rc4 };\r\n","/**\r\n * @license\r\n * Licensed under the MIT License.\r\n * http://opensource.org/licenses/mit-license\r\n * Author: Owen Leong (@owenl131)\r\n * Date: 15 Oct 2020\r\n * References:\r\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\r\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\r\n * http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nimport { md5Bin } from \"./md5.js\";\r\nimport { rc4 } from \"./rc4.js\";\r\n\r\nvar permissionOptions = {\r\n  print: 4,\r\n  modify: 8,\r\n  copy: 16,\r\n  \"annot-forms\": 32\r\n};\r\n\r\n/**\r\n * Initializes encryption settings\r\n *\r\n * @name constructor\r\n * @function\r\n * @param {Array} permissions Permissions allowed for user, \"print\", \"modify\", \"copy\" and \"annot-forms\".\r\n * @param {String} userPassword Permissions apply to this user. Leaving this empty means the document\r\n *                              is not password protected but viewer has the above permissions.\r\n * @param {String} ownerPassword Owner has full functionalities to the file.\r\n * @param {String} fileId As hex string, should be same as the file ID in the trailer.\r\n * @example\r\n * var security = new PDFSecurity([\"print\"])\r\n */\r\nfunction PDFSecurity(permissions, userPassword, ownerPassword, fileId) {\r\n  this.v = 1; // algorithm 1, future work can add in more recent encryption schemes\r\n  this.r = 2; // revision 2\r\n\r\n  // set flags for what functionalities the user can access\r\n  let protection = 192;\r\n  permissions.forEach(function(perm) {\r\n    if (typeof permissionOptions.perm !== \"undefined\") {\r\n      throw new Error(\"Invalid permission: \" + perm);\r\n    }\r\n    protection += permissionOptions[perm];\r\n  });\r\n\r\n  // padding is used to pad the passwords to 32 bytes, also is hashed and stored in the final PDF\r\n  this.padding =\r\n    \"\\x28\\xBF\\x4E\\x5E\\x4E\\x75\\x8A\\x41\\x64\\x00\\x4E\\x56\\xFF\\xFA\\x01\\x08\" +\r\n    \"\\x2E\\x2E\\x00\\xB6\\xD0\\x68\\x3E\\x80\\x2F\\x0C\\xA9\\xFE\\x64\\x53\\x69\\x7A\";\r\n  let paddedUserPassword = (userPassword + this.padding).substr(0, 32);\r\n  let paddedOwnerPassword = (ownerPassword + this.padding).substr(0, 32);\r\n\r\n  this.O = this.processOwnerPassword(paddedUserPassword, paddedOwnerPassword);\r\n  this.P = -((protection ^ 255) + 1);\r\n  this.encryptionKey = md5Bin(\r\n    paddedUserPassword +\r\n      this.O +\r\n      this.lsbFirstWord(this.P) +\r\n      this.hexToBytes(fileId)\r\n  ).substr(0, 5);\r\n  this.U = rc4(this.encryptionKey, this.padding);\r\n}\r\n\r\n/**\r\n * Breaks down a 4-byte number into its individual bytes, with the least significant bit first\r\n *\r\n * @name lsbFirstWord\r\n * @function\r\n * @param {number} data 32-bit number\r\n * @returns {Array}\r\n */\r\nPDFSecurity.prototype.lsbFirstWord = function(data) {\r\n  return String.fromCharCode(\r\n    (data >> 0) & 0xff,\r\n    (data >> 8) & 0xff,\r\n    (data >> 16) & 0xff,\r\n    (data >> 24) & 0xff\r\n  );\r\n};\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name toHexString\r\n * @function\r\n * @param {String} byteString Byte string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.toHexString = function(byteString) {\r\n  return byteString\r\n    .split(\"\")\r\n    .map(function(byte) {\r\n      return (\"0\" + (byte.charCodeAt(0) & 0xff).toString(16)).slice(-2);\r\n    })\r\n    .join(\"\");\r\n};\r\n\r\n/**\r\n * Converts a hex string to a byte string\r\n *\r\n * @name hexToBytes\r\n * @function\r\n * @param {String} hex Hex string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.hexToBytes = function(hex) {\r\n  for (var bytes = [], c = 0; c < hex.length; c += 2)\r\n    bytes.push(String.fromCharCode(parseInt(hex.substr(c, 2), 16)));\r\n  return bytes.join(\"\");\r\n};\r\n\r\n/**\r\n * Computes the 'O' field in the encryption dictionary\r\n *\r\n * @name processOwnerPassword\r\n * @function\r\n * @param {String} paddedUserPassword Byte string of padded user password\r\n * @param {String} paddedOwnerPassword Byte string of padded owner password\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.processOwnerPassword = function(\r\n  paddedUserPassword,\r\n  paddedOwnerPassword\r\n) {\r\n  let key = md5Bin(paddedOwnerPassword).substr(0, 5);\r\n  return rc4(key, paddedUserPassword);\r\n};\r\n\r\n/**\r\n * Returns an encryptor function which can take in a byte string and returns the encrypted version\r\n *\r\n * @name encryptor\r\n * @function\r\n * @param {number} objectId\r\n * @param {number} generation Not sure what this is for, you can set it to 0\r\n * @returns {Function}\r\n * @example\r\n * out(\"stream\");\r\n * encryptor = security.encryptor(object.id, 0);\r\n * out(encryptor(data));\r\n * out(\"endstream\");\r\n */\r\nPDFSecurity.prototype.encryptor = function(objectId, generation) {\r\n  let key = md5Bin(\r\n    this.encryptionKey +\r\n      String.fromCharCode(\r\n        objectId & 0xff,\r\n        (objectId >> 8) & 0xff,\r\n        (objectId >> 16) & 0xff,\r\n        generation & 0xff,\r\n        (generation >> 8) & 0xff\r\n      )\r\n  ).substr(0, 10);\r\n  return function(data) {\r\n    return rc4(key, data);\r\n  };\r\n};\r\n\r\nexport { PDFSecurity };\r\n","/**\n * Convert string to `PDF Name Object`.\n * Detail: PDF Reference 1.3 - Chapter 3.2.4 Name Object\n * @param str\n */\nfunction toPDFName(str) {\n  // eslint-disable-next-line no-control-regex\n  if (/[^\\u0000-\\u00ff]/.test(str)) {\n    // non ascii string\n    throw new Error(\n      \"Invalid PDF Name Object: \" + str + \", Only accept ASCII characters.\"\n    );\n  }\n  var result = \"\",\n    strLength = str.length;\n  for (var i = 0; i < strLength; i++) {\n    var charCode = str.charCodeAt(i);\n    if (\n      charCode < 0x21 ||\n      charCode === 0x23 /* # */ ||\n      charCode === 0x25 /* % */ ||\n      charCode === 0x28 /* ( */ ||\n      charCode === 0x29 /* ) */ ||\n      charCode === 0x2f /* / */ ||\n      charCode === 0x3c /* < */ ||\n      charCode === 0x3e /* > */ ||\n      charCode === 0x5b /* [ */ ||\n      charCode === 0x5d /* ] */ ||\n      charCode === 0x7b /* { */ ||\n      charCode === 0x7d /* } */ ||\n      charCode > 0x7e\n    ) {\n      // Char    CharCode    hexStr   paddingHexStr    Result\n      // \"\\t\"    9           9        09               #09\n      // \" \"     32          20       20               #20\n      // \"©\"     169         a9       a9               #a9\n      var hexStr = charCode.toString(16),\n        paddingHexStr = (\"0\" + hexStr).slice(-2);\n\n      result += \"#\" + paddingHexStr;\n    } else {\n      // Other ASCII printable characters between 0x21 <= X <= 0x7e\n      result += str[i];\n    }\n  }\n  return result;\n}\n\nexport { toPDFName };\n","/* eslint-disable no-console */\r\n\r\nimport { globalObject } from \"./libs/globalObject.js\";\r\nimport { RGBColor } from \"./libs/rgbcolor.js\";\r\nimport { btoa } from \"./libs/AtobBtoa.js\";\r\nimport { console } from \"./libs/console.js\";\r\nimport { PDFSecurity } from \"./libs/pdfsecurity.js\";\r\nimport { toPDFName } from \"./libs/pdfname.js\";\r\n/**\r\n * jsPDF's Internal PubSub Implementation.\r\n * Backward compatible rewritten on 2014 by\r\n * Diego Casorran, https://github.com/diegocr\r\n *\r\n * @class\r\n * @name PubSub\r\n * @ignore\r\n */\r\nfunction PubSub(context) {\r\n  if (typeof context !== \"object\") {\r\n    throw new Error(\r\n      \"Invalid Context passed to initialize PubSub (jsPDF-module)\"\r\n    );\r\n  }\r\n  var topics = {};\r\n\r\n  this.subscribe = function(topic, callback, once) {\r\n    once = once || false;\r\n    if (\r\n      typeof topic !== \"string\" ||\r\n      typeof callback !== \"function\" ||\r\n      typeof once !== \"boolean\"\r\n    ) {\r\n      throw new Error(\r\n        \"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\"\r\n      );\r\n    }\r\n\r\n    if (!topics.hasOwnProperty(topic)) {\r\n      topics[topic] = {};\r\n    }\r\n\r\n    var token = Math.random().toString(35);\r\n    topics[topic][token] = [callback, !!once];\r\n\r\n    return token;\r\n  };\r\n\r\n  this.unsubscribe = function(token) {\r\n    for (var topic in topics) {\r\n      if (topics[topic][token]) {\r\n        delete topics[topic][token];\r\n        if (Object.keys(topics[topic]).length === 0) {\r\n          delete topics[topic];\r\n        }\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  };\r\n\r\n  this.publish = function(topic) {\r\n    if (topics.hasOwnProperty(topic)) {\r\n      var args = Array.prototype.slice.call(arguments, 1),\r\n        tokens = [];\r\n\r\n      for (var token in topics[topic]) {\r\n        var sub = topics[topic][token];\r\n        try {\r\n          sub[0].apply(context, args);\r\n        } catch (ex) {\r\n          if (globalObject.console) {\r\n            console.error(\"jsPDF PubSub Error\", ex.message, ex);\r\n          }\r\n        }\r\n        if (sub[1]) tokens.push(token);\r\n      }\r\n      if (tokens.length) tokens.forEach(this.unsubscribe);\r\n    }\r\n  };\r\n\r\n  this.getTopics = function() {\r\n    return topics;\r\n  };\r\n}\r\n\r\nfunction GState(parameters) {\r\n  if (!(this instanceof GState)) {\r\n    return new GState(parameters);\r\n  }\r\n\r\n  /**\r\n   * @name GState#opacity\r\n   * @type {any}\r\n   */\r\n  /**\r\n   * @name GState#stroke-opacity\r\n   * @type {any}\r\n   */\r\n  var supported = \"opacity,stroke-opacity\".split(\",\");\r\n  for (var p in parameters) {\r\n    if (parameters.hasOwnProperty(p) && supported.indexOf(p) >= 0) {\r\n      this[p] = parameters[p];\r\n    }\r\n  }\r\n  /**\r\n   * @name GState#id\r\n   * @type {string}\r\n   */\r\n  this.id = \"\"; // set by addGState()\r\n  /**\r\n   * @name GState#objectNumber\r\n   * @type {number}\r\n   */\r\n  this.objectNumber = -1; // will be set by putGState()\r\n}\r\n\r\nGState.prototype.equals = function equals(other) {\r\n  var ignore = \"id,objectNumber,equals\";\r\n  var p;\r\n  if (!other || typeof other !== typeof this) return false;\r\n  var count = 0;\r\n  for (p in this) {\r\n    if (ignore.indexOf(p) >= 0) continue;\r\n    if (this.hasOwnProperty(p) && !other.hasOwnProperty(p)) return false;\r\n    if (this[p] !== other[p]) return false;\r\n    count++;\r\n  }\r\n  for (p in other) {\r\n    if (other.hasOwnProperty(p) && ignore.indexOf(p) < 0) count--;\r\n  }\r\n  return count === 0;\r\n};\r\n\r\nfunction Pattern(gState, matrix) {\r\n  this.gState = gState;\r\n  this.matrix = matrix;\r\n\r\n  this.id = \"\"; // set by addPattern()\r\n  this.objectNumber = -1; // will be set by putPattern()\r\n}\r\n\r\nfunction ShadingPattern(type, coords, colors, gState, matrix) {\r\n  if (!(this instanceof ShadingPattern)) {\r\n    return new ShadingPattern(type, coords, colors, gState, matrix);\r\n  }\r\n\r\n  // see putPattern() for information how they are realized\r\n  this.type = type === \"axial\" ? 2 : 3;\r\n  this.coords = coords;\r\n  this.colors = colors;\r\n\r\n  Pattern.call(this, gState, matrix);\r\n}\r\n\r\nfunction TilingPattern(boundingBox, xStep, yStep, gState, matrix) {\r\n  if (!(this instanceof TilingPattern)) {\r\n    return new TilingPattern(boundingBox, xStep, yStep, gState, matrix);\r\n  }\r\n\r\n  this.boundingBox = boundingBox;\r\n  this.xStep = xStep;\r\n  this.yStep = yStep;\r\n\r\n  this.stream = \"\"; // set by endTilingPattern();\r\n\r\n  this.cloneIndex = 0;\r\n\r\n  Pattern.call(this, gState, matrix);\r\n}\r\n\r\n/**\r\n * Creates new jsPDF document object instance.\r\n * @name jsPDF\r\n * @class\r\n * @param {Object} [options] - Collection of settings initializing the jsPDF-instance\r\n * @param {string} [options.orientation=portrait] - Orientation of the first page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" or \"l\").<br />\r\n * @param {string} [options.unit=mm] Measurement unit (base unit) to be used when coordinates are specified.<br />\r\n * Possible values are \"pt\" (points), \"mm\", \"cm\", \"in\", \"px\", \"pc\", \"em\" or \"ex\". Note that in order to get the correct scaling for \"px\"\r\n * units, you need to enable the hotfix \"px_scaling\" by setting options.hotfixes = [\"px_scaling\"].\r\n * @param {string/Array} [options.format=a4] The format of the first page. Can be:<ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\r\n * @param {boolean} [options.compress=false] Compress the generated PDF.\r\n * @param {number} [options.precision=16] Precision of the element-positions.\r\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\r\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\r\n * @param {Object} [options.encryption]\r\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\r\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\r\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\r\n * @param {number|\"smart\"} [options.floatPrecision=16]\r\n * @returns {jsPDF} jsPDF-instance\r\n * @description\r\n * ```\r\n * {\r\n *  orientation: 'p',\r\n *  unit: 'mm',\r\n *  format: 'a4',\r\n *  putOnlyUsedFonts:true,\r\n *  floatPrecision: 16 // or \"smart\", default is 16\r\n * }\r\n * ```\r\n *\r\n * @constructor\r\n */\r\nfunction jsPDF(options) {\r\n  var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\r\n  var unit = arguments[1];\r\n  var format = arguments[2];\r\n  var compressPdf = arguments[3];\r\n  var filters = [];\r\n  var userUnit = 1.0;\r\n  var precision;\r\n  var floatPrecision = 16;\r\n  var defaultPathOperation = \"S\";\r\n  var encryptionOptions = null;\r\n\r\n  options = options || {};\r\n\r\n  if (typeof options === \"object\") {\r\n    orientation = options.orientation;\r\n    unit = options.unit || unit;\r\n    format = options.format || format;\r\n    compressPdf = options.compress || options.compressPdf || compressPdf;\r\n    encryptionOptions = options.encryption || null;\r\n    if (encryptionOptions !== null) {\r\n      encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\r\n      encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\r\n      encryptionOptions.userPermissions =\r\n        encryptionOptions.userPermissions || [];\r\n    }\r\n    userUnit =\r\n      typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\r\n    if (typeof options.precision !== \"undefined\") {\r\n      precision = options.precision;\r\n    }\r\n    if (typeof options.floatPrecision !== \"undefined\") {\r\n      floatPrecision = options.floatPrecision;\r\n    }\r\n    defaultPathOperation = options.defaultPathOperation || \"S\";\r\n  }\r\n\r\n  filters =\r\n    options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\r\n\r\n  unit = unit || \"mm\";\r\n  orientation = (\"\" + (orientation || \"P\")).toLowerCase();\r\n  var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\r\n  var usedFonts = {};\r\n\r\n  var API = {\r\n    internal: {},\r\n    __private__: {}\r\n  };\r\n\r\n  API.__private__.PubSub = PubSub;\r\n\r\n  var pdfVersion = \"1.3\";\r\n  var getPdfVersion = (API.__private__.getPdfVersion = function() {\r\n    return pdfVersion;\r\n  });\r\n\r\n  API.__private__.setPdfVersion = function(value) {\r\n    pdfVersion = value;\r\n  };\r\n\r\n  // Size in pt of various paper formats\r\n  var pageFormats = {\r\n    a0: [2383.94, 3370.39],\r\n    a1: [1683.78, 2383.94],\r\n    a2: [1190.55, 1683.78],\r\n    a3: [841.89, 1190.55],\r\n    a4: [595.28, 841.89],\r\n    a5: [419.53, 595.28],\r\n    a6: [297.64, 419.53],\r\n    a7: [209.76, 297.64],\r\n    a8: [147.4, 209.76],\r\n    a9: [104.88, 147.4],\r\n    a10: [73.7, 104.88],\r\n    b0: [2834.65, 4008.19],\r\n    b1: [2004.09, 2834.65],\r\n    b2: [1417.32, 2004.09],\r\n    b3: [1000.63, 1417.32],\r\n    b4: [708.66, 1000.63],\r\n    b5: [498.9, 708.66],\r\n    b6: [354.33, 498.9],\r\n    b7: [249.45, 354.33],\r\n    b8: [175.75, 249.45],\r\n    b9: [124.72, 175.75],\r\n    b10: [87.87, 124.72],\r\n    c0: [2599.37, 3676.54],\r\n    c1: [1836.85, 2599.37],\r\n    c2: [1298.27, 1836.85],\r\n    c3: [918.43, 1298.27],\r\n    c4: [649.13, 918.43],\r\n    c5: [459.21, 649.13],\r\n    c6: [323.15, 459.21],\r\n    c7: [229.61, 323.15],\r\n    c8: [161.57, 229.61],\r\n    c9: [113.39, 161.57],\r\n    c10: [79.37, 113.39],\r\n    dl: [311.81, 623.62],\r\n    letter: [612, 792],\r\n    \"government-letter\": [576, 756],\r\n    legal: [612, 1008],\r\n    \"junior-legal\": [576, 360],\r\n    ledger: [1224, 792],\r\n    tabloid: [792, 1224],\r\n    \"credit-card\": [153, 243]\r\n  };\r\n\r\n  API.__private__.getPageFormats = function() {\r\n    return pageFormats;\r\n  };\r\n\r\n  var getPageFormat = (API.__private__.getPageFormat = function(value) {\r\n    return pageFormats[value];\r\n  });\r\n\r\n  format = format || \"a4\";\r\n\r\n  var ApiMode = {\r\n    COMPAT: \"compat\",\r\n    ADVANCED: \"advanced\"\r\n  };\r\n  var apiMode = ApiMode.COMPAT;\r\n\r\n  function advancedAPI() {\r\n    // prepend global change of basis matrix\r\n    // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\r\n    // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\r\n    this.saveGraphicsState();\r\n    out(\r\n      new Matrix(\r\n        scaleFactor,\r\n        0,\r\n        0,\r\n        -scaleFactor,\r\n        0,\r\n        getPageHeight() * scaleFactor\r\n      ).toString() + \" cm\"\r\n    );\r\n    this.setFontSize(this.getFontSize() / scaleFactor);\r\n\r\n    // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\r\n    // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\r\n    defaultPathOperation = \"n\";\r\n\r\n    apiMode = ApiMode.ADVANCED;\r\n  }\r\n\r\n  function compatAPI() {\r\n    this.restoreGraphicsState();\r\n    defaultPathOperation = \"S\";\r\n    apiMode = ApiMode.COMPAT;\r\n  }\r\n\r\n  /**\r\n   * @function combineFontStyleAndFontWeight\r\n   * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\r\n   * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n   * @returns {string}\r\n   * @private\r\n   */\r\n  var combineFontStyleAndFontWeight = (API.__private__.combineFontStyleAndFontWeight = function(\r\n    fontStyle,\r\n    fontWeight\r\n  ) {\r\n    if (\r\n      (fontStyle == \"bold\" && fontWeight == \"normal\") ||\r\n      (fontStyle == \"bold\" && fontWeight == 400) ||\r\n      (fontStyle == \"normal\" && fontWeight == \"italic\") ||\r\n      (fontStyle == \"bold\" && fontWeight == \"italic\")\r\n    ) {\r\n      throw new Error(\"Invalid Combination of fontweight and fontstyle\");\r\n    }\r\n    if (fontWeight) {\r\n      fontStyle =\r\n        fontWeight == 400 || fontWeight === \"normal\"\r\n          ? fontStyle === \"italic\"\r\n            ? \"italic\"\r\n            : \"normal\"\r\n          : (fontWeight == 700 || fontWeight === \"bold\") &&\r\n            fontStyle === \"normal\"\r\n          ? \"bold\"\r\n          : (fontWeight == 700 ? \"bold\" : fontWeight) + \"\" + fontStyle;\r\n    }\r\n    return fontStyle;\r\n  });\r\n\r\n  /**\r\n   * @callback ApiSwitchBody\r\n   * @param {jsPDF} pdf\r\n   */\r\n\r\n  /**\r\n   * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\r\n   * screen coordinates and the PDF coordinate system.\r\n   *   - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\r\n   *   - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\r\n   *     not support this mode, though.\r\n   * Initial mode is \"compat\".\r\n   *\r\n   * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\r\n   * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\r\n   *\r\n   * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\r\n   * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\r\n   * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\r\n   *\r\n   * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n   * The API mode will be switched back automatically afterwards.\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name advancedAPI\r\n   */\r\n  API.advancedAPI = function(body) {\r\n    var doSwitch = apiMode === ApiMode.COMPAT;\r\n\r\n    if (doSwitch) {\r\n      advancedAPI.call(this);\r\n    }\r\n\r\n    if (typeof body !== \"function\") {\r\n      return this;\r\n    }\r\n\r\n    body(this);\r\n\r\n    if (doSwitch) {\r\n      compatAPI.call(this);\r\n    }\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\r\n   *\r\n   * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n   * The API mode will be switched back automatically afterwards.\r\n   * @return {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name compatApi\r\n   */\r\n  API.compatAPI = function(body) {\r\n    var doSwitch = apiMode === ApiMode.ADVANCED;\r\n\r\n    if (doSwitch) {\r\n      compatAPI.call(this);\r\n    }\r\n\r\n    if (typeof body !== \"function\") {\r\n      return this;\r\n    }\r\n\r\n    body(this);\r\n\r\n    if (doSwitch) {\r\n      advancedAPI.call(this);\r\n    }\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\r\n   * @memberof jsPDF#\r\n   * @name isAdvancedAPI\r\n   */\r\n  API.isAdvancedAPI = function() {\r\n    return apiMode === ApiMode.ADVANCED;\r\n  };\r\n\r\n  var advancedApiModeTrap = function(methodName) {\r\n    if (apiMode !== ApiMode.ADVANCED) {\r\n      throw new Error(\r\n        methodName +\r\n          \" is only available in 'advanced' API mode. \" +\r\n          \"You need to call advancedAPI() first.\"\r\n      );\r\n    }\r\n  };\r\n\r\n  var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\r\n    number,\r\n    parmPrecision\r\n  ) {\r\n    var tmpPrecision = precision || parmPrecision;\r\n    if (isNaN(number) || isNaN(tmpPrecision)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\r\n    }\r\n    return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\r\n  });\r\n\r\n  // high precision float\r\n  var hpf;\r\n  if (typeof floatPrecision === \"number\") {\r\n    hpf = API.hpf = API.__private__.hpf = function(number) {\r\n      if (isNaN(number)) {\r\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n      }\r\n      return roundToPrecision(number, floatPrecision);\r\n    };\r\n  } else if (floatPrecision === \"smart\") {\r\n    hpf = API.hpf = API.__private__.hpf = function(number) {\r\n      if (isNaN(number)) {\r\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n      }\r\n      if (number > -1 && number < 1) {\r\n        return roundToPrecision(number, 16);\r\n      } else {\r\n        return roundToPrecision(number, 5);\r\n      }\r\n    };\r\n  } else {\r\n    hpf = API.hpf = API.__private__.hpf = function(number) {\r\n      if (isNaN(number)) {\r\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n      }\r\n      return roundToPrecision(number, 16);\r\n    };\r\n  }\r\n  var f2 = (API.f2 = API.__private__.f2 = function(number) {\r\n    if (isNaN(number)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.f2\");\r\n    }\r\n    return roundToPrecision(number, 2);\r\n  });\r\n\r\n  var f3 = (API.__private__.f3 = function(number) {\r\n    if (isNaN(number)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.f3\");\r\n    }\r\n    return roundToPrecision(number, 3);\r\n  });\r\n\r\n  var scale = (API.scale = API.__private__.scale = function(number) {\r\n    if (isNaN(number)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.scale\");\r\n    }\r\n    if (apiMode === ApiMode.COMPAT) {\r\n      return number * scaleFactor;\r\n    } else if (apiMode === ApiMode.ADVANCED) {\r\n      return number;\r\n    }\r\n  });\r\n\r\n  var transformY = function(y) {\r\n    if (apiMode === ApiMode.COMPAT) {\r\n      return getPageHeight() - y;\r\n    } else if (apiMode === ApiMode.ADVANCED) {\r\n      return y;\r\n    }\r\n  };\r\n\r\n  var transformScaleY = function(y) {\r\n    return scale(transformY(y));\r\n  };\r\n\r\n  /**\r\n   * @name setPrecision\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {string} precision\r\n   * @returns {jsPDF}\r\n   */\r\n  API.__private__.setPrecision = API.setPrecision = function(value) {\r\n    if (typeof parseInt(value, 10) === \"number\") {\r\n      precision = parseInt(value, 10);\r\n    }\r\n  };\r\n\r\n  var fileId = \"00000000000000000000000000000000\";\r\n\r\n  var getFileId = (API.__private__.getFileId = function() {\r\n    return fileId;\r\n  });\r\n\r\n  var setFileId = (API.__private__.setFileId = function(value) {\r\n    if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\r\n      fileId = value.toUpperCase();\r\n    } else {\r\n      fileId = fileId\r\n        .split(\"\")\r\n        .map(function() {\r\n          return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\r\n        })\r\n        .join(\"\");\r\n    }\r\n\r\n    if (encryptionOptions !== null) {\r\n      encryption = new PDFSecurity(\r\n        encryptionOptions.userPermissions,\r\n        encryptionOptions.userPassword,\r\n        encryptionOptions.ownerPassword,\r\n        fileId\r\n      );\r\n    }\r\n    return fileId;\r\n  });\r\n\r\n  /**\r\n   * @name setFileId\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {string} value GUID.\r\n   * @returns {jsPDF}\r\n   */\r\n  API.setFileId = function(value) {\r\n    setFileId(value);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * @name getFileId\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   *\r\n   * @returns {string} GUID.\r\n   */\r\n  API.getFileId = function() {\r\n    return getFileId();\r\n  };\r\n\r\n  var creationDate;\r\n\r\n  var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\r\n    parmDate\r\n  ) {\r\n    var result = \"\";\r\n    var tzoffset = parmDate.getTimezoneOffset(),\r\n      tzsign = tzoffset < 0 ? \"+\" : \"-\",\r\n      tzhour = Math.floor(Math.abs(tzoffset / 60)),\r\n      tzmin = Math.abs(tzoffset % 60),\r\n      timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\r\n\r\n    result = [\r\n      \"D:\",\r\n      parmDate.getFullYear(),\r\n      padd2(parmDate.getMonth() + 1),\r\n      padd2(parmDate.getDate()),\r\n      padd2(parmDate.getHours()),\r\n      padd2(parmDate.getMinutes()),\r\n      padd2(parmDate.getSeconds()),\r\n      timeZoneString\r\n    ].join(\"\");\r\n    return result;\r\n  });\r\n\r\n  var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\r\n    parmPDFDate\r\n  ) {\r\n    var year = parseInt(parmPDFDate.substr(2, 4), 10);\r\n    var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\r\n    var date = parseInt(parmPDFDate.substr(8, 2), 10);\r\n    var hour = parseInt(parmPDFDate.substr(10, 2), 10);\r\n    var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\r\n    var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\r\n    // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\r\n    // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\r\n\r\n    var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\r\n    return resultingDate;\r\n  });\r\n\r\n  var setCreationDate = (API.__private__.setCreationDate = function(date) {\r\n    var tmpCreationDateString;\r\n    var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\r\n    if (typeof date === \"undefined\") {\r\n      date = new Date();\r\n    }\r\n\r\n    if (date instanceof Date) {\r\n      tmpCreationDateString = convertDateToPDFDate(date);\r\n    } else if (regexPDFCreationDate.test(date)) {\r\n      tmpCreationDateString = date;\r\n    } else {\r\n      throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\r\n    }\r\n    creationDate = tmpCreationDateString;\r\n    return creationDate;\r\n  });\r\n\r\n  var getCreationDate = (API.__private__.getCreationDate = function(type) {\r\n    var result = creationDate;\r\n    if (type === \"jsDate\") {\r\n      result = convertPDFDateToDate(creationDate);\r\n    }\r\n    return result;\r\n  });\r\n\r\n  /**\r\n   * @name setCreationDate\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {Object} date\r\n   * @returns {jsPDF}\r\n   */\r\n  API.setCreationDate = function(date) {\r\n    setCreationDate(date);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * @name getCreationDate\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {Object} type\r\n   * @returns {Object}\r\n   */\r\n  API.getCreationDate = function(type) {\r\n    return getCreationDate(type);\r\n  };\r\n\r\n  var padd2 = (API.__private__.padd2 = function(number) {\r\n    return (\"0\" + parseInt(number)).slice(-2);\r\n  });\r\n\r\n  var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\r\n    hexString = hexString.toString();\r\n    return (\"00\" + hexString).substr(hexString.length);\r\n  });\r\n\r\n  var objectNumber = 0; // 'n' Current object number\r\n  var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\r\n  var content = [];\r\n  var contentLength = 0;\r\n  var additionalObjects = [];\r\n\r\n  var pages = [];\r\n  var currentPage;\r\n  var hasCustomDestination = false;\r\n  var outputDestination = content;\r\n\r\n  var resetDocument = function() {\r\n    //reset fields relevant for objectNumber generation and xref.\r\n    objectNumber = 0;\r\n    contentLength = 0;\r\n    content = [];\r\n    offsets = [];\r\n    additionalObjects = [];\r\n\r\n    rootDictionaryObjId = newObjectDeferred();\r\n    resourceDictionaryObjId = newObjectDeferred();\r\n  };\r\n\r\n  API.__private__.setCustomOutputDestination = function(destination) {\r\n    hasCustomDestination = true;\r\n    outputDestination = destination;\r\n  };\r\n  var setOutputDestination = function(destination) {\r\n    if (!hasCustomDestination) {\r\n      outputDestination = destination;\r\n    }\r\n  };\r\n\r\n  API.__private__.resetCustomOutputDestination = function() {\r\n    hasCustomDestination = false;\r\n    outputDestination = content;\r\n  };\r\n\r\n  var out = (API.__private__.out = function(string) {\r\n    string = string.toString();\r\n    contentLength += string.length + 1;\r\n    outputDestination.push(string);\r\n\r\n    return outputDestination;\r\n  });\r\n\r\n  var write = (API.__private__.write = function(value) {\r\n    return out(\r\n      arguments.length === 1\r\n        ? value.toString()\r\n        : Array.prototype.join.call(arguments, \" \")\r\n    );\r\n  });\r\n\r\n  var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\r\n    var len = data.length,\r\n      ab = new ArrayBuffer(len),\r\n      u8 = new Uint8Array(ab);\r\n\r\n    while (len--) u8[len] = data.charCodeAt(len);\r\n    return ab;\r\n  });\r\n\r\n  var standardFonts = [\r\n    [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\r\n    [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\r\n    [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\r\n    [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n    [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\r\n    [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\r\n    [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\r\n    [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n    [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\r\n    [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\r\n    [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\r\n    [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n    [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\r\n    [\"Symbol\", \"symbol\", \"normal\", null]\r\n  ];\r\n\r\n  API.__private__.getStandardFonts = function() {\r\n    return standardFonts;\r\n  };\r\n\r\n  var activeFontSize = options.fontSize || 16;\r\n\r\n  /**\r\n   * Sets font size for upcoming text elements.\r\n   *\r\n   * @param {number} size Font size in points.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setFontSize\r\n   */\r\n  API.__private__.setFontSize = API.setFontSize = function(size) {\r\n    if (apiMode === ApiMode.ADVANCED) {\r\n      activeFontSize = size / scaleFactor;\r\n    } else {\r\n      activeFontSize = size;\r\n    }\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Gets the fontsize for upcoming text elements.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {number}\r\n   * @memberof jsPDF#\r\n   * @name getFontSize\r\n   */\r\n  var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\r\n    if (apiMode === ApiMode.COMPAT) {\r\n      return activeFontSize;\r\n    } else {\r\n      return activeFontSize * scaleFactor;\r\n    }\r\n  });\r\n\r\n  var R2L = options.R2L || false;\r\n\r\n  /**\r\n   * Set value of R2L functionality.\r\n   *\r\n   * @param {boolean} value\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF} jsPDF-instance\r\n   * @memberof jsPDF#\r\n   * @name setR2L\r\n   */\r\n  API.__private__.setR2L = API.setR2L = function(value) {\r\n    R2L = value;\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Get value of R2L functionality.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {boolean} jsPDF-instance\r\n   * @memberof jsPDF#\r\n   * @name getR2L\r\n   */\r\n  API.__private__.getR2L = API.getR2L = function() {\r\n    return R2L;\r\n  };\r\n\r\n  var zoomMode; // default: 1;\r\n\r\n  var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\r\n    var validZoomModes = [\r\n      undefined,\r\n      null,\r\n      \"fullwidth\",\r\n      \"fullheight\",\r\n      \"fullpage\",\r\n      \"original\"\r\n    ];\r\n\r\n    if (/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(zoom)) {\r\n      zoomMode = zoom;\r\n    } else if (!isNaN(zoom)) {\r\n      zoomMode = parseInt(zoom, 10);\r\n    } else if (validZoomModes.indexOf(zoom) !== -1) {\r\n      zoomMode = zoom;\r\n    } else {\r\n      throw new Error(\r\n        'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\r\n          zoom +\r\n          '\" is not recognized.'\r\n      );\r\n    }\r\n  });\r\n\r\n  API.__private__.getZoomMode = function() {\r\n    return zoomMode;\r\n  };\r\n\r\n  var pageMode; // default: 'UseOutlines';\r\n  var setPageMode = (API.__private__.setPageMode = function(pmode) {\r\n    var validPageModes = [\r\n      undefined,\r\n      null,\r\n      \"UseNone\",\r\n      \"UseOutlines\",\r\n      \"UseThumbs\",\r\n      \"FullScreen\"\r\n    ];\r\n\r\n    if (validPageModes.indexOf(pmode) == -1) {\r\n      throw new Error(\r\n        'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\r\n          pmode +\r\n          '\" is not recognized.'\r\n      );\r\n    }\r\n    pageMode = pmode;\r\n  });\r\n\r\n  API.__private__.getPageMode = function() {\r\n    return pageMode;\r\n  };\r\n\r\n  var layoutMode; // default: 'continuous';\r\n  var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\r\n    var validLayoutModes = [\r\n      undefined,\r\n      null,\r\n      \"continuous\",\r\n      \"single\",\r\n      \"twoleft\",\r\n      \"tworight\",\r\n      \"two\"\r\n    ];\r\n\r\n    if (validLayoutModes.indexOf(layout) == -1) {\r\n      throw new Error(\r\n        'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\r\n          layout +\r\n          '\" is not recognized.'\r\n      );\r\n    }\r\n    layoutMode = layout;\r\n  });\r\n\r\n  API.__private__.getLayoutMode = function() {\r\n    return layoutMode;\r\n  };\r\n\r\n  /**\r\n   * Set the display mode options of the page like zoom and layout.\r\n   *\r\n   * @name setDisplayMode\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {integer|String} zoom   You can pass an integer or percentage as\r\n   * a string. 2 will scale the document up 2x, '200%' will scale up by the\r\n   * same amount. You can also set it to 'fullwidth', 'fullheight',\r\n   * 'fullpage', or 'original'.\r\n   *\r\n   * Only certain PDF readers support this, such as Adobe Acrobat.\r\n   *\r\n   * @param {string} layout Layout mode can be: 'continuous' - this is the\r\n   * default continuous scroll. 'single' - the single page mode only shows one\r\n   * page at a time. 'twoleft' - two column left mode, first page starts on\r\n   * the left, and 'tworight' - pages are laid out in two columns, with the\r\n   * first page on the right. This would be used for books.\r\n   * @param {string} pmode 'UseOutlines' - it shows the\r\n   * outline of the document on the left. 'UseThumbs' - shows thumbnails along\r\n   * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\r\n   *\r\n   * @returns {jsPDF}\r\n   */\r\n  API.__private__.setDisplayMode = API.setDisplayMode = function(\r\n    zoom,\r\n    layout,\r\n    pmode\r\n  ) {\r\n    setZoomMode(zoom);\r\n    setLayoutMode(layout);\r\n    setPageMode(pmode);\r\n    return this;\r\n  };\r\n\r\n  var documentProperties = {\r\n    title: \"\",\r\n    subject: \"\",\r\n    author: \"\",\r\n    keywords: \"\",\r\n    creator: \"\"\r\n  };\r\n\r\n  API.__private__.getDocumentProperty = function(key) {\r\n    if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\r\n    }\r\n    return documentProperties[key];\r\n  };\r\n\r\n  API.__private__.getDocumentProperties = function() {\r\n    return documentProperties;\r\n  };\r\n\r\n  /**\r\n   * Adds a properties to the PDF document.\r\n   *\r\n   * @param {Object} A property_name-to-property_value object structure.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setDocumentProperties\r\n   */\r\n  API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\r\n    properties\r\n  ) {\r\n    // copying only those properties we can render.\r\n    for (var property in documentProperties) {\r\n      if (documentProperties.hasOwnProperty(property) && properties[property]) {\r\n        documentProperties[property] = properties[property];\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  API.__private__.setDocumentProperty = function(key, value) {\r\n    if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\r\n    }\r\n    return (documentProperties[key] = value);\r\n  };\r\n\r\n  var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\r\n  var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\r\n  var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\r\n  var fontStateStack = []; //\r\n  var patterns = {}; // collection of pattern objects\r\n  var patternMap = {}; // see fonts\r\n  var gStates = {}; // collection of graphic state objects\r\n  var gStatesMap = {}; // see fonts\r\n  var activeGState = null;\r\n  var scaleFactor; // Scale factor\r\n  var page = 0;\r\n  var pagesContext = [];\r\n  var events = new PubSub(API);\r\n  var hotfixes = options.hotfixes || [];\r\n\r\n  var renderTargets = {};\r\n  var renderTargetMap = {};\r\n  var renderTargetStack = [];\r\n  var pageX;\r\n  var pageY;\r\n  var pageMatrix; // only used for FormObjects\r\n\r\n  /**\r\n   * A matrix object for 2D homogenous transformations: <br>\r\n   * | a b 0 | <br>\r\n   * | c d 0 | <br>\r\n   * | e f 1 | <br>\r\n   * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\r\n   *\r\n   * @class\r\n   * @name Matrix\r\n   * @param {number} sx\r\n   * @param {number} shy\r\n   * @param {number} shx\r\n   * @param {number} sy\r\n   * @param {number} tx\r\n   * @param {number} ty\r\n   * @constructor\r\n   */\r\n  var Matrix = function(sx, shy, shx, sy, tx, ty) {\r\n    if (!(this instanceof Matrix)) {\r\n      return new Matrix(sx, shy, shx, sy, tx, ty);\r\n    }\r\n\r\n    if (isNaN(sx)) sx = 1;\r\n    if (isNaN(shy)) shy = 0;\r\n    if (isNaN(shx)) shx = 0;\r\n    if (isNaN(sy)) sy = 1;\r\n    if (isNaN(tx)) tx = 0;\r\n    if (isNaN(ty)) ty = 0;\r\n\r\n    this._matrix = [sx, shy, shx, sy, tx, ty];\r\n  };\r\n\r\n  /**\r\n   * @name sx\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"sx\", {\r\n    get: function() {\r\n      return this._matrix[0];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[0] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name shy\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"shy\", {\r\n    get: function() {\r\n      return this._matrix[1];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[1] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name shx\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"shx\", {\r\n    get: function() {\r\n      return this._matrix[2];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[2] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name sy\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"sy\", {\r\n    get: function() {\r\n      return this._matrix[3];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[3] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name tx\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"tx\", {\r\n    get: function() {\r\n      return this._matrix[4];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[4] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name ty\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"ty\", {\r\n    get: function() {\r\n      return this._matrix[5];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[5] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"a\", {\r\n    get: function() {\r\n      return this._matrix[0];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[0] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"b\", {\r\n    get: function() {\r\n      return this._matrix[1];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[1] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"c\", {\r\n    get: function() {\r\n      return this._matrix[2];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[2] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"d\", {\r\n    get: function() {\r\n      return this._matrix[3];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[3] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"e\", {\r\n    get: function() {\r\n      return this._matrix[4];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[4] = value;\r\n    }\r\n  });\r\n\r\n  Object.defineProperty(Matrix.prototype, \"f\", {\r\n    get: function() {\r\n      return this._matrix[5];\r\n    },\r\n    set: function(value) {\r\n      this._matrix[5] = value;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name rotation\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"rotation\", {\r\n    get: function() {\r\n      return Math.atan2(this.shx, this.sx);\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name scaleX\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"scaleX\", {\r\n    get: function() {\r\n      return this.decompose().scale.sx;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name scaleY\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"scaleY\", {\r\n    get: function() {\r\n      return this.decompose().scale.sy;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * @name isIdentity\r\n   * @memberof Matrix#\r\n   */\r\n  Object.defineProperty(Matrix.prototype, \"isIdentity\", {\r\n    get: function() {\r\n      if (this.sx !== 1) {\r\n        return false;\r\n      }\r\n      if (this.shy !== 0) {\r\n        return false;\r\n      }\r\n      if (this.shx !== 0) {\r\n        return false;\r\n      }\r\n      if (this.sy !== 1) {\r\n        return false;\r\n      }\r\n      if (this.tx !== 0) {\r\n        return false;\r\n      }\r\n      if (this.ty !== 0) {\r\n        return false;\r\n      }\r\n      return true;\r\n    }\r\n  });\r\n\r\n  /**\r\n   * Join the Matrix Values to a String\r\n   *\r\n   * @function join\r\n   * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\r\n   * @returns {string} A string with all array elements joined.\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.join = function(separator) {\r\n    return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\r\n      .map(hpf)\r\n      .join(separator);\r\n  };\r\n\r\n  /**\r\n   * Multiply the matrix with given Matrix\r\n   *\r\n   * @function multiply\r\n   * @param matrix\r\n   * @returns {Matrix}\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.multiply = function(matrix) {\r\n    var sx = matrix.sx * this.sx + matrix.shy * this.shx;\r\n    var shy = matrix.sx * this.shy + matrix.shy * this.sy;\r\n    var shx = matrix.shx * this.sx + matrix.sy * this.shx;\r\n    var sy = matrix.shx * this.shy + matrix.sy * this.sy;\r\n    var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\r\n    var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\r\n\r\n    return new Matrix(sx, shy, shx, sy, tx, ty);\r\n  };\r\n\r\n  /**\r\n   * @function decompose\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.decompose = function() {\r\n    var a = this.sx;\r\n    var b = this.shy;\r\n    var c = this.shx;\r\n    var d = this.sy;\r\n    var e = this.tx;\r\n    var f = this.ty;\r\n\r\n    var scaleX = Math.sqrt(a * a + b * b);\r\n    a /= scaleX;\r\n    b /= scaleX;\r\n\r\n    var shear = a * c + b * d;\r\n    c -= a * shear;\r\n    d -= b * shear;\r\n\r\n    var scaleY = Math.sqrt(c * c + d * d);\r\n    c /= scaleY;\r\n    d /= scaleY;\r\n    shear /= scaleY;\r\n\r\n    if (a * d < b * c) {\r\n      a = -a;\r\n      b = -b;\r\n      shear = -shear;\r\n      scaleX = -scaleX;\r\n    }\r\n\r\n    return {\r\n      scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\r\n      translate: new Matrix(1, 0, 0, 1, e, f),\r\n      rotate: new Matrix(a, b, -b, a, 0, 0),\r\n      skew: new Matrix(1, 0, shear, 1, 0, 0)\r\n    };\r\n  };\r\n\r\n  /**\r\n   * @function toString\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.toString = function(parmPrecision) {\r\n    return this.join(\" \");\r\n  };\r\n\r\n  /**\r\n   * @function inversed\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.inversed = function() {\r\n    var a = this.sx,\r\n      b = this.shy,\r\n      c = this.shx,\r\n      d = this.sy,\r\n      e = this.tx,\r\n      f = this.ty;\r\n\r\n    var quot = 1 / (a * d - b * c);\r\n\r\n    var aInv = d * quot;\r\n    var bInv = -b * quot;\r\n    var cInv = -c * quot;\r\n    var dInv = a * quot;\r\n    var eInv = -aInv * e - cInv * f;\r\n    var fInv = -bInv * e - dInv * f;\r\n\r\n    return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\r\n  };\r\n\r\n  /**\r\n   * @function applyToPoint\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.applyToPoint = function(pt) {\r\n    var x = pt.x * this.sx + pt.y * this.shx + this.tx;\r\n    var y = pt.x * this.shy + pt.y * this.sy + this.ty;\r\n    return new Point(x, y);\r\n  };\r\n\r\n  /**\r\n   * @function applyToRectangle\r\n   * @memberof Matrix#\r\n   */\r\n  Matrix.prototype.applyToRectangle = function(rect) {\r\n    var pt1 = this.applyToPoint(rect);\r\n    var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\r\n    return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\r\n  };\r\n\r\n  /**\r\n   * Clone the Matrix\r\n   *\r\n   * @function clone\r\n   * @memberof Matrix#\r\n   * @name clone\r\n   * @instance\r\n   */\r\n  Matrix.prototype.clone = function() {\r\n    var sx = this.sx;\r\n    var shy = this.shy;\r\n    var shx = this.shx;\r\n    var sy = this.sy;\r\n    var tx = this.tx;\r\n    var ty = this.ty;\r\n\r\n    return new Matrix(sx, shy, shx, sy, tx, ty);\r\n  };\r\n\r\n  API.Matrix = Matrix;\r\n\r\n  /**\r\n   * Multiplies two matrices. (see {@link Matrix})\r\n   * @param {Matrix} m1\r\n   * @param {Matrix} m2\r\n   * @memberof jsPDF#\r\n   * @name matrixMult\r\n   */\r\n  var matrixMult = (API.matrixMult = function(m1, m2) {\r\n    return m2.multiply(m1);\r\n  });\r\n\r\n  /**\r\n   * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\r\n   * @type {Matrix}\r\n   * @memberof! jsPDF#\r\n   * @name identityMatrix\r\n   */\r\n  var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\r\n  API.unitMatrix = API.identityMatrix = identityMatrix;\r\n\r\n  /**\r\n   * Adds a new pattern for later use.\r\n   * @param {String} key The key by it can be referenced later. The keys must be unique!\r\n   * @param {API.Pattern} pattern The pattern\r\n   */\r\n  var addPattern = function(key, pattern) {\r\n    // only add it if it is not already present (the keys provided by the user must be unique!)\r\n    if (patternMap[key]) return;\r\n\r\n    var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\r\n    var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\r\n    pattern.id = patternKey;\r\n\r\n    patternMap[key] = patternKey;\r\n    patterns[patternKey] = pattern;\r\n\r\n    events.publish(\"addPattern\", pattern);\r\n  };\r\n\r\n  /**\r\n   * A pattern describing a shading pattern.\r\n   *\r\n   * Only available in \"advanced\" API mode.\r\n   *\r\n   * @param {String} type One of \"axial\" or \"radial\"\r\n   * @param {Array<Number>} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\r\n   * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\r\n   * @param {Array<Object>} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\r\n   * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\r\n   * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n   * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n   * and the use coordinate system (optional).\r\n   * @constructor\r\n   * @extends API.Pattern\r\n   */\r\n  API.ShadingPattern = ShadingPattern;\r\n\r\n  /**\r\n   * A PDF Tiling pattern.\r\n   *\r\n   * Only available in \"advanced\" API mode.\r\n   *\r\n   * @param {Array.<Number>} boundingBox The bounding box at which one pattern cell gets clipped.\r\n   * @param {Number} xStep Horizontal spacing between pattern cells.\r\n   * @param {Number} yStep Vertical spacing between pattern cells.\r\n   * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n   * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n   * and the use coordinate system (optional).\r\n   * @constructor\r\n   * @extends API.Pattern\r\n   */\r\n  API.TilingPattern = TilingPattern;\r\n\r\n  /**\r\n   * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\r\n   * @param {String} key\r\n   * @param {Pattern} pattern\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name addPattern\r\n   */\r\n  API.addShadingPattern = function(key, pattern) {\r\n    advancedApiModeTrap(\"addShadingPattern()\");\r\n\r\n    addPattern(key, pattern);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\r\n   * gets called. Only available in \"advanced\" API mode.\r\n   * @param {API.Pattern} pattern\r\n   * @memberof jsPDF#\r\n   * @name beginTilingPattern\r\n   */\r\n  API.beginTilingPattern = function(pattern) {\r\n    advancedApiModeTrap(\"beginTilingPattern()\");\r\n\r\n    beginNewRenderTarget(\r\n      pattern.boundingBox[0],\r\n      pattern.boundingBox[1],\r\n      pattern.boundingBox[2] - pattern.boundingBox[0],\r\n      pattern.boundingBox[3] - pattern.boundingBox[1],\r\n      pattern.matrix\r\n    );\r\n  };\r\n\r\n  /**\r\n   * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\r\n   *\r\n   * Only available in \"advanced\" API mode.\r\n   *\r\n   * @param {string} key A unique key that is used to reference this pattern at later use.\r\n   * @param {API.Pattern} pattern The pattern to end.\r\n   * @memberof jsPDF#\r\n   * @name endTilingPattern\r\n   */\r\n  API.endTilingPattern = function(key, pattern) {\r\n    advancedApiModeTrap(\"endTilingPattern()\");\r\n\r\n    // retrieve the stream\r\n    pattern.stream = pages[currentPage].join(\"\\n\");\r\n\r\n    addPattern(key, pattern);\r\n\r\n    events.publish(\"endTilingPattern\", pattern);\r\n\r\n    // restore state from stack\r\n    renderTargetStack.pop().restore();\r\n  };\r\n\r\n  var newObject = (API.__private__.newObject = function() {\r\n    var oid = newObjectDeferred();\r\n    newObjectDeferredBegin(oid, true);\r\n    return oid;\r\n  });\r\n\r\n  // Does not output the object.  The caller must call newObjectDeferredBegin(oid) before outputing any data\r\n  var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\r\n    objectNumber++;\r\n    offsets[objectNumber] = function() {\r\n      return contentLength;\r\n    };\r\n    return objectNumber;\r\n  });\r\n\r\n  var newObjectDeferredBegin = function(oid, doOutput) {\r\n    doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\r\n    offsets[oid] = contentLength;\r\n    if (doOutput) {\r\n      out(oid + \" 0 obj\");\r\n    }\r\n    return oid;\r\n  };\r\n  // Does not output the object until after the pages have been output.\r\n  // Returns an object containing the objectId and content.\r\n  // All pages have been added so the object ID can be estimated to start right after.\r\n  // This does not modify the current objectNumber;  It must be updated after the newObjects are output.\r\n  var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\r\n    var objId = newObjectDeferred();\r\n    var obj = {\r\n      objId: objId,\r\n      content: \"\"\r\n    };\r\n    additionalObjects.push(obj);\r\n    return obj;\r\n  });\r\n\r\n  var rootDictionaryObjId = newObjectDeferred();\r\n  var resourceDictionaryObjId = newObjectDeferred();\r\n\r\n  /////////////////////\r\n  // Private functions\r\n  /////////////////////\r\n\r\n  var decodeColorString = (API.__private__.decodeColorString = function(color) {\r\n    var colorEncoded = color.split(\" \");\r\n    if (\r\n      colorEncoded.length === 2 &&\r\n      (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\r\n    ) {\r\n      // convert grayscale value to rgb so that it can be converted to hex for consistency\r\n      var floatVal = parseFloat(colorEncoded[0]);\r\n      colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\r\n    } else if (\r\n      colorEncoded.length === 5 &&\r\n      (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\r\n    ) {\r\n      // convert CMYK values to rbg so that it can be converted to hex for consistency\r\n      var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\r\n      var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\r\n      var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\r\n\r\n      colorEncoded = [red, green, blue, \"r\"];\r\n    }\r\n    var colorAsRGB = \"#\";\r\n    for (var i = 0; i < 3; i++) {\r\n      colorAsRGB += (\r\n        \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\r\n      ).slice(-2);\r\n    }\r\n    return colorAsRGB;\r\n  });\r\n\r\n  var encodeColorString = (API.__private__.encodeColorString = function(\r\n    options\r\n  ) {\r\n    var color;\r\n\r\n    if (typeof options === \"string\") {\r\n      options = {\r\n        ch1: options\r\n      };\r\n    }\r\n    var ch1 = options.ch1;\r\n    var ch2 = options.ch2;\r\n    var ch3 = options.ch3;\r\n    var ch4 = options.ch4;\r\n    var letterArray =\r\n      options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\r\n\r\n    if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\r\n      var rgbColor = new RGBColor(ch1);\r\n      if (rgbColor.ok) {\r\n        ch1 = rgbColor.toHex();\r\n      } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\r\n        throw new Error(\r\n          'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\r\n        );\r\n      }\r\n    }\r\n    //convert short rgb to long form\r\n    if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\r\n      ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\r\n    }\r\n\r\n    if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\r\n      var hex = parseInt(ch1.substr(1), 16);\r\n      ch1 = (hex >> 16) & 255;\r\n      ch2 = (hex >> 8) & 255;\r\n      ch3 = hex & 255;\r\n    }\r\n\r\n    if (\r\n      typeof ch2 === \"undefined\" ||\r\n      (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\r\n    ) {\r\n      // Gray color space.\r\n      if (typeof ch1 === \"string\") {\r\n        color = ch1 + \" \" + letterArray[0];\r\n      } else {\r\n        switch (options.precision) {\r\n          case 2:\r\n            color = f2(ch1 / 255) + \" \" + letterArray[0];\r\n            break;\r\n          case 3:\r\n          default:\r\n            color = f3(ch1 / 255) + \" \" + letterArray[0];\r\n        }\r\n      }\r\n    } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\r\n      // assume RGBA\r\n      if (ch4 && !isNaN(ch4.a)) {\r\n        //TODO Implement transparency.\r\n        //WORKAROUND use white for now, if transparent, otherwise handle as rgb\r\n        if (ch4.a === 0) {\r\n          color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\r\n          return color;\r\n        }\r\n      }\r\n      // assume RGB\r\n      if (typeof ch1 === \"string\") {\r\n        color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\r\n      } else {\r\n        switch (options.precision) {\r\n          case 2:\r\n            color = [\r\n              f2(ch1 / 255),\r\n              f2(ch2 / 255),\r\n              f2(ch3 / 255),\r\n              letterArray[1]\r\n            ].join(\" \");\r\n            break;\r\n          default:\r\n          case 3:\r\n            color = [\r\n              f3(ch1 / 255),\r\n              f3(ch2 / 255),\r\n              f3(ch3 / 255),\r\n              letterArray[1]\r\n            ].join(\" \");\r\n        }\r\n      }\r\n    } else {\r\n      // assume CMYK\r\n      if (typeof ch1 === \"string\") {\r\n        color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\r\n      } else {\r\n        switch (options.precision) {\r\n          case 2:\r\n            color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\r\n              \" \"\r\n            );\r\n            break;\r\n          case 3:\r\n          default:\r\n            color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\r\n              \" \"\r\n            );\r\n        }\r\n      }\r\n    }\r\n    return color;\r\n  });\r\n\r\n  var getFilters = (API.__private__.getFilters = function() {\r\n    return filters;\r\n  });\r\n\r\n  var putStream = (API.__private__.putStream = function(options) {\r\n    options = options || {};\r\n    var data = options.data || \"\";\r\n    var filters = options.filters || getFilters();\r\n    var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\r\n    var addLength1 = options.addLength1 || false;\r\n    var valueOfLength1 = data.length;\r\n    var objectId = options.objectId;\r\n    var encryptor = function(data) {\r\n      return data;\r\n    };\r\n    if (encryptionOptions !== null && typeof objectId == \"undefined\") {\r\n      throw new Error(\r\n        \"ObjectId must be passed to putStream for file encryption\"\r\n      );\r\n    }\r\n    if (encryptionOptions !== null) {\r\n      encryptor = encryption.encryptor(objectId, 0);\r\n    }\r\n\r\n    var processedData = {};\r\n    if (filters === true) {\r\n      filters = [\"FlateEncode\"];\r\n    }\r\n    var keyValues = options.additionalKeyValues || [];\r\n    if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\r\n      processedData = jsPDF.API.processDataByFilters(data, filters);\r\n    } else {\r\n      processedData = { data: data, reverseChain: [] };\r\n    }\r\n    var filterAsString =\r\n      processedData.reverseChain +\r\n      (Array.isArray(alreadyAppliedFilters)\r\n        ? alreadyAppliedFilters.join(\" \")\r\n        : alreadyAppliedFilters.toString());\r\n\r\n    if (processedData.data.length !== 0) {\r\n      keyValues.push({\r\n        key: \"Length\",\r\n        value: processedData.data.length\r\n      });\r\n      if (addLength1 === true) {\r\n        keyValues.push({\r\n          key: \"Length1\",\r\n          value: valueOfLength1\r\n        });\r\n      }\r\n    }\r\n\r\n    if (filterAsString.length != 0) {\r\n      if (filterAsString.split(\"/\").length - 1 === 1) {\r\n        keyValues.push({\r\n          key: \"Filter\",\r\n          value: filterAsString\r\n        });\r\n      } else {\r\n        keyValues.push({\r\n          key: \"Filter\",\r\n          value: \"[\" + filterAsString + \"]\"\r\n        });\r\n\r\n        for (var j = 0; j < keyValues.length; j += 1) {\r\n          if (keyValues[j].key === \"DecodeParms\") {\r\n            var decodeParmsArray = [];\r\n\r\n            for (\r\n              var i = 0;\r\n              i < processedData.reverseChain.split(\"/\").length - 1;\r\n              i += 1\r\n            ) {\r\n              decodeParmsArray.push(\"null\");\r\n            }\r\n\r\n            decodeParmsArray.push(keyValues[j].value);\r\n            keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    out(\"<<\");\r\n    for (var k = 0; k < keyValues.length; k++) {\r\n      out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\r\n    }\r\n    out(\">>\");\r\n    if (processedData.data.length !== 0) {\r\n      out(\"stream\");\r\n      out(encryptor(processedData.data));\r\n      out(\"endstream\");\r\n    }\r\n  });\r\n\r\n  var putPage = (API.__private__.putPage = function(page) {\r\n    var pageNumber = page.number;\r\n    var data = page.data;\r\n    var pageObjectNumber = page.objId;\r\n    var pageContentsObjId = page.contentsObjId;\r\n\r\n    newObjectDeferredBegin(pageObjectNumber, true);\r\n    out(\"<</Type /Page\");\r\n    out(\"/Parent \" + page.rootDictionaryObjId + \" 0 R\");\r\n    out(\"/Resources \" + page.resourceDictionaryObjId + \" 0 R\");\r\n    out(\r\n      \"/MediaBox [\" +\r\n        parseFloat(hpf(page.mediaBox.bottomLeftX)) +\r\n        \" \" +\r\n        parseFloat(hpf(page.mediaBox.bottomLeftY)) +\r\n        \" \" +\r\n        hpf(page.mediaBox.topRightX) +\r\n        \" \" +\r\n        hpf(page.mediaBox.topRightY) +\r\n        \"]\"\r\n    );\r\n    if (page.cropBox !== null) {\r\n      out(\r\n        \"/CropBox [\" +\r\n          hpf(page.cropBox.bottomLeftX) +\r\n          \" \" +\r\n          hpf(page.cropBox.bottomLeftY) +\r\n          \" \" +\r\n          hpf(page.cropBox.topRightX) +\r\n          \" \" +\r\n          hpf(page.cropBox.topRightY) +\r\n          \"]\"\r\n      );\r\n    }\r\n\r\n    if (page.bleedBox !== null) {\r\n      out(\r\n        \"/BleedBox [\" +\r\n          hpf(page.bleedBox.bottomLeftX) +\r\n          \" \" +\r\n          hpf(page.bleedBox.bottomLeftY) +\r\n          \" \" +\r\n          hpf(page.bleedBox.topRightX) +\r\n          \" \" +\r\n          hpf(page.bleedBox.topRightY) +\r\n          \"]\"\r\n      );\r\n    }\r\n\r\n    if (page.trimBox !== null) {\r\n      out(\r\n        \"/TrimBox [\" +\r\n          hpf(page.trimBox.bottomLeftX) +\r\n          \" \" +\r\n          hpf(page.trimBox.bottomLeftY) +\r\n          \" \" +\r\n          hpf(page.trimBox.topRightX) +\r\n          \" \" +\r\n          hpf(page.trimBox.topRightY) +\r\n          \"]\"\r\n      );\r\n    }\r\n\r\n    if (page.artBox !== null) {\r\n      out(\r\n        \"/ArtBox [\" +\r\n          hpf(page.artBox.bottomLeftX) +\r\n          \" \" +\r\n          hpf(page.artBox.bottomLeftY) +\r\n          \" \" +\r\n          hpf(page.artBox.topRightX) +\r\n          \" \" +\r\n          hpf(page.artBox.topRightY) +\r\n          \"]\"\r\n      );\r\n    }\r\n\r\n    if (typeof page.userUnit === \"number\" && page.userUnit !== 1.0) {\r\n      out(\"/UserUnit \" + page.userUnit);\r\n    }\r\n\r\n    events.publish(\"putPage\", {\r\n      objId: pageObjectNumber,\r\n      pageContext: pagesContext[pageNumber],\r\n      pageNumber: pageNumber,\r\n      page: data\r\n    });\r\n    out(\"/Contents \" + pageContentsObjId + \" 0 R\");\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n    // Page content\r\n    var pageContent = data.join(\"\\n\");\r\n\r\n    if (apiMode === ApiMode.ADVANCED) {\r\n      // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\r\n      pageContent += \"\\nQ\";\r\n    }\r\n\r\n    newObjectDeferredBegin(pageContentsObjId, true);\r\n    putStream({\r\n      data: pageContent,\r\n      filters: getFilters(),\r\n      objectId: pageContentsObjId\r\n    });\r\n    out(\"endobj\");\r\n    return pageObjectNumber;\r\n  });\r\n\r\n  var putPages = (API.__private__.putPages = function() {\r\n    var n,\r\n      i,\r\n      pageObjectNumbers = [];\r\n\r\n    for (n = 1; n <= page; n++) {\r\n      pagesContext[n].objId = newObjectDeferred();\r\n      pagesContext[n].contentsObjId = newObjectDeferred();\r\n    }\r\n\r\n    for (n = 1; n <= page; n++) {\r\n      pageObjectNumbers.push(\r\n        putPage({\r\n          number: n,\r\n          data: pages[n],\r\n          objId: pagesContext[n].objId,\r\n          contentsObjId: pagesContext[n].contentsObjId,\r\n          mediaBox: pagesContext[n].mediaBox,\r\n          cropBox: pagesContext[n].cropBox,\r\n          bleedBox: pagesContext[n].bleedBox,\r\n          trimBox: pagesContext[n].trimBox,\r\n          artBox: pagesContext[n].artBox,\r\n          userUnit: pagesContext[n].userUnit,\r\n          rootDictionaryObjId: rootDictionaryObjId,\r\n          resourceDictionaryObjId: resourceDictionaryObjId\r\n        })\r\n      );\r\n    }\r\n    newObjectDeferredBegin(rootDictionaryObjId, true);\r\n    out(\"<</Type /Pages\");\r\n    var kids = \"/Kids [\";\r\n    for (i = 0; i < page; i++) {\r\n      kids += pageObjectNumbers[i] + \" 0 R \";\r\n    }\r\n    out(kids + \"]\");\r\n    out(\"/Count \" + page);\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n    events.publish(\"postPutPages\");\r\n  });\r\n\r\n  var putFont = function(font) {\r\n    events.publish(\"putFont\", {\r\n      font: font,\r\n      out: out,\r\n      newObject: newObject,\r\n      putStream: putStream\r\n    });\r\n\r\n    if (font.isAlreadyPutted !== true) {\r\n      font.objectNumber = newObject();\r\n      out(\"<<\");\r\n      out(\"/Type /Font\");\r\n      out(\"/BaseFont /\" + toPDFName(font.postScriptName));\r\n      out(\"/Subtype /Type1\");\r\n      if (typeof font.encoding === \"string\") {\r\n        out(\"/Encoding /\" + font.encoding);\r\n      }\r\n      out(\"/FirstChar 32\");\r\n      out(\"/LastChar 255\");\r\n      out(\">>\");\r\n      out(\"endobj\");\r\n    }\r\n  };\r\n\r\n  var putFonts = function() {\r\n    for (var fontKey in fonts) {\r\n      if (fonts.hasOwnProperty(fontKey)) {\r\n        if (\r\n          putOnlyUsedFonts === false ||\r\n          (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n        ) {\r\n          putFont(fonts[fontKey]);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  var putXObject = function(xObject) {\r\n    xObject.objectNumber = newObject();\r\n\r\n    var options = [];\r\n    options.push({ key: \"Type\", value: \"/XObject\" });\r\n    options.push({ key: \"Subtype\", value: \"/Form\" });\r\n    options.push({\r\n      key: \"BBox\",\r\n      value:\r\n        \"[\" +\r\n        [\r\n          hpf(xObject.x),\r\n          hpf(xObject.y),\r\n          hpf(xObject.x + xObject.width),\r\n          hpf(xObject.y + xObject.height)\r\n        ].join(\" \") +\r\n        \"]\"\r\n    });\r\n    options.push({\r\n      key: \"Matrix\",\r\n      value: \"[\" + xObject.matrix.toString() + \"]\"\r\n    });\r\n    // TODO: /Resources\r\n\r\n    var stream = xObject.pages[1].join(\"\\n\");\r\n    putStream({\r\n      data: stream,\r\n      additionalKeyValues: options,\r\n      objectId: xObject.objectNumber\r\n    });\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putXObjects = function() {\r\n    for (var xObjectKey in renderTargets) {\r\n      if (renderTargets.hasOwnProperty(xObjectKey)) {\r\n        putXObject(renderTargets[xObjectKey]);\r\n      }\r\n    }\r\n  };\r\n\r\n  var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\r\n    var tValues = [];\r\n    var t;\r\n    var dT = 1.0 / (numberSamples - 1);\r\n    for (t = 0.0; t < 1.0; t += dT) {\r\n      tValues.push(t);\r\n    }\r\n    tValues.push(1.0);\r\n    // add first and last control point if not present\r\n    if (colors[0].offset != 0.0) {\r\n      var c0 = {\r\n        offset: 0.0,\r\n        color: colors[0].color\r\n      };\r\n      colors.unshift(c0);\r\n    }\r\n    if (colors[colors.length - 1].offset != 1.0) {\r\n      var c1 = {\r\n        offset: 1.0,\r\n        color: colors[colors.length - 1].color\r\n      };\r\n      colors.push(c1);\r\n    }\r\n    var out = \"\";\r\n    var index = 0;\r\n\r\n    for (var i = 0; i < tValues.length; i++) {\r\n      t = tValues[i];\r\n      while (t > colors[index + 1].offset) index++;\r\n      var a = colors[index].offset;\r\n      var b = colors[index + 1].offset;\r\n      var d = (t - a) / (b - a);\r\n\r\n      var aColor = colors[index].color;\r\n      var bColor = colors[index + 1].color;\r\n\r\n      out +=\r\n        padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\r\n        padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\r\n        padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\r\n    }\r\n    return out.trim();\r\n  };\r\n\r\n  var putShadingPattern = function(pattern, numberSamples) {\r\n    /*\r\n       Axial patterns shade between the two points specified in coords, radial patterns between the inner\r\n       and outer circle.\r\n       The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\r\n       interpolated to equidistant samples and written to pdf as a sample (type 0) function.\r\n       */\r\n    // The number of color samples that should be used to describe the shading.\r\n    // The higher, the more accurate the gradient will be.\r\n    numberSamples || (numberSamples = 21);\r\n    var funcObjectNumber = newObject();\r\n    var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\r\n\r\n    var options = [];\r\n    options.push({ key: \"FunctionType\", value: \"0\" });\r\n    options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\r\n    options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\r\n    options.push({ key: \"BitsPerSample\", value: \"8\" });\r\n    options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n    options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n\r\n    putStream({\r\n      data: stream,\r\n      additionalKeyValues: options,\r\n      alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\r\n      objectId: funcObjectNumber\r\n    });\r\n    out(\"endobj\");\r\n\r\n    pattern.objectNumber = newObject();\r\n    out(\"<< /ShadingType \" + pattern.type);\r\n    out(\"/ColorSpace /DeviceRGB\");\r\n    var coords =\r\n      \"/Coords [\" +\r\n      hpf(parseFloat(pattern.coords[0])) +\r\n      \" \" + // x1\r\n      hpf(parseFloat(pattern.coords[1])) +\r\n      \" \"; // y1\r\n    if (pattern.type === 2) {\r\n      // axial\r\n      coords +=\r\n        hpf(parseFloat(pattern.coords[2])) +\r\n        \" \" + // x2\r\n        hpf(parseFloat(pattern.coords[3])); // y2\r\n    } else {\r\n      // radial\r\n      coords +=\r\n        hpf(parseFloat(pattern.coords[2])) +\r\n        \" \" + // r1\r\n        hpf(parseFloat(pattern.coords[3])) +\r\n        \" \" + // x2\r\n        hpf(parseFloat(pattern.coords[4])) +\r\n        \" \" + // y2\r\n        hpf(parseFloat(pattern.coords[5])); // r2\r\n    }\r\n    coords += \"]\";\r\n    out(coords);\r\n\r\n    if (pattern.matrix) {\r\n      out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\r\n    }\r\n    out(\"/Function \" + funcObjectNumber + \" 0 R\");\r\n    out(\"/Extend [true true]\");\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\r\n    var resourcesObjectId = newObjectDeferred();\r\n    var patternObjectId = newObject();\r\n\r\n    deferredResourceDictionaryIds.push({\r\n      resourcesOid: resourcesObjectId,\r\n      objectOid: patternObjectId\r\n    });\r\n\r\n    pattern.objectNumber = patternObjectId;\r\n    var options = [];\r\n    options.push({ key: \"Type\", value: \"/Pattern\" });\r\n    options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\r\n    options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\r\n    options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\r\n    options.push({\r\n      key: \"BBox\",\r\n      value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\r\n    });\r\n    options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\r\n    options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\r\n    options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\r\n    if (pattern.matrix) {\r\n      options.push({\r\n        key: \"Matrix\",\r\n        value: \"[\" + pattern.matrix.toString() + \"]\"\r\n      });\r\n    }\r\n\r\n    putStream({\r\n      data: pattern.stream,\r\n      additionalKeyValues: options,\r\n      objectId: pattern.objectNumber\r\n    });\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putPatterns = function(deferredResourceDictionaryIds) {\r\n    var patternKey;\r\n    for (patternKey in patterns) {\r\n      if (patterns.hasOwnProperty(patternKey)) {\r\n        if (patterns[patternKey] instanceof ShadingPattern) {\r\n          putShadingPattern(patterns[patternKey]);\r\n        } else if (patterns[patternKey] instanceof TilingPattern) {\r\n          putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  var putGState = function(gState) {\r\n    gState.objectNumber = newObject();\r\n    out(\"<<\");\r\n    for (var p in gState) {\r\n      switch (p) {\r\n        case \"opacity\":\r\n          out(\"/ca \" + f2(gState[p]));\r\n          break;\r\n        case \"stroke-opacity\":\r\n          out(\"/CA \" + f2(gState[p]));\r\n          break;\r\n      }\r\n    }\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putGStates = function() {\r\n    var gStateKey;\r\n    for (gStateKey in gStates) {\r\n      if (gStates.hasOwnProperty(gStateKey)) {\r\n        putGState(gStates[gStateKey]);\r\n      }\r\n    }\r\n  };\r\n\r\n  var putXobjectDict = function() {\r\n    out(\"/XObject <<\");\r\n    for (var xObjectKey in renderTargets) {\r\n      if (\r\n        renderTargets.hasOwnProperty(xObjectKey) &&\r\n        renderTargets[xObjectKey].objectNumber >= 0\r\n      ) {\r\n        out(\r\n          \"/\" +\r\n            xObjectKey +\r\n            \" \" +\r\n            renderTargets[xObjectKey].objectNumber +\r\n            \" 0 R\"\r\n        );\r\n      }\r\n    }\r\n\r\n    // Loop through images, or other data objects\r\n    events.publish(\"putXobjectDict\");\r\n    out(\">>\");\r\n  };\r\n\r\n  var putEncryptionDict = function() {\r\n    encryption.oid = newObject();\r\n    out(\"<<\");\r\n    out(\"/Filter /Standard\");\r\n    out(\"/V \" + encryption.v);\r\n    out(\"/R \" + encryption.r);\r\n    out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\r\n    out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\r\n    out(\"/P \" + encryption.P);\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putFontDict = function() {\r\n    out(\"/Font <<\");\r\n\r\n    for (var fontKey in fonts) {\r\n      if (fonts.hasOwnProperty(fontKey)) {\r\n        if (\r\n          putOnlyUsedFonts === false ||\r\n          (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n        ) {\r\n          out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\r\n        }\r\n      }\r\n    }\r\n    out(\">>\");\r\n  };\r\n\r\n  var putShadingPatternDict = function() {\r\n    if (Object.keys(patterns).length > 0) {\r\n      out(\"/Shading <<\");\r\n      for (var patternKey in patterns) {\r\n        if (\r\n          patterns.hasOwnProperty(patternKey) &&\r\n          patterns[patternKey] instanceof ShadingPattern &&\r\n          patterns[patternKey].objectNumber >= 0\r\n        ) {\r\n          out(\r\n            \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n          );\r\n        }\r\n      }\r\n\r\n      events.publish(\"putShadingPatternDict\");\r\n      out(\">>\");\r\n    }\r\n  };\r\n\r\n  var putTilingPatternDict = function(objectOid) {\r\n    if (Object.keys(patterns).length > 0) {\r\n      out(\"/Pattern <<\");\r\n      for (var patternKey in patterns) {\r\n        if (\r\n          patterns.hasOwnProperty(patternKey) &&\r\n          patterns[patternKey] instanceof API.TilingPattern &&\r\n          patterns[patternKey].objectNumber >= 0 &&\r\n          patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\r\n        ) {\r\n          out(\r\n            \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n          );\r\n        }\r\n      }\r\n      events.publish(\"putTilingPatternDict\");\r\n      out(\">>\");\r\n    }\r\n  };\r\n\r\n  var putGStatesDict = function() {\r\n    if (Object.keys(gStates).length > 0) {\r\n      var gStateKey;\r\n      out(\"/ExtGState <<\");\r\n      for (gStateKey in gStates) {\r\n        if (\r\n          gStates.hasOwnProperty(gStateKey) &&\r\n          gStates[gStateKey].objectNumber >= 0\r\n        ) {\r\n          out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\r\n        }\r\n      }\r\n\r\n      events.publish(\"putGStateDict\");\r\n      out(\">>\");\r\n    }\r\n  };\r\n\r\n  var putResourceDictionary = function(objectIds) {\r\n    newObjectDeferredBegin(objectIds.resourcesOid, true);\r\n    out(\"<<\");\r\n    out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\r\n    putFontDict();\r\n    putShadingPatternDict();\r\n    putTilingPatternDict(objectIds.objectOid);\r\n    putGStatesDict();\r\n    putXobjectDict();\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  };\r\n\r\n  var putResources = function() {\r\n    // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\r\n    // which means their resource dictionaries must contain the already resolved\r\n    // object ids. For this reason we defer the serialization of the resource\r\n    // dicts until all objects have been serialized and have object ids.\r\n    //\r\n    // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\r\n    // we only put all oids that are smaller than the oid of the object the\r\n    // resource dict belongs to. This is correct behavior, since the streams\r\n    // may only use other objects that have already been defined and thus appear\r\n    // earlier in their respective collection.\r\n    // Currently, this only affects tiling patterns, but a (more) correct\r\n    // implementation of FormObjects would also define their own resource dicts.\r\n    var deferredResourceDictionaryIds = [];\r\n\r\n    putFonts();\r\n    putGStates();\r\n    putXObjects();\r\n    putPatterns(deferredResourceDictionaryIds);\r\n\r\n    events.publish(\"putResources\");\r\n    deferredResourceDictionaryIds.forEach(putResourceDictionary);\r\n    putResourceDictionary({\r\n      resourcesOid: resourceDictionaryObjId,\r\n      objectOid: Number.MAX_SAFE_INTEGER // output all objects\r\n    });\r\n    events.publish(\"postPutResources\");\r\n  };\r\n\r\n  var putAdditionalObjects = function() {\r\n    events.publish(\"putAdditionalObjects\");\r\n    for (var i = 0; i < additionalObjects.length; i++) {\r\n      var obj = additionalObjects[i];\r\n      newObjectDeferredBegin(obj.objId, true);\r\n      out(obj.content);\r\n      out(\"endobj\");\r\n    }\r\n    events.publish(\"postPutAdditionalObjects\");\r\n  };\r\n\r\n  var addFontToFontDictionary = function(font) {\r\n    fontmap[font.fontName] = fontmap[font.fontName] || {};\r\n    fontmap[font.fontName][font.fontStyle] = font.id;\r\n  };\r\n\r\n  var addFont = function(\r\n    postScriptName,\r\n    fontName,\r\n    fontStyle,\r\n    encoding,\r\n    isStandardFont\r\n  ) {\r\n    var font = {\r\n      id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\r\n      postScriptName: postScriptName,\r\n      fontName: fontName,\r\n      fontStyle: fontStyle,\r\n      encoding: encoding,\r\n      isStandardFont: isStandardFont || false,\r\n      metadata: {}\r\n    };\r\n\r\n    events.publish(\"addFont\", {\r\n      font: font,\r\n      instance: this\r\n    });\r\n\r\n    fonts[font.id] = font;\r\n    addFontToFontDictionary(font);\r\n    return font.id;\r\n  };\r\n\r\n  var addFonts = function(arrayOfFonts) {\r\n    for (var i = 0, l = standardFonts.length; i < l; i++) {\r\n      var fontKey = addFont.call(\r\n        this,\r\n        arrayOfFonts[i][0],\r\n        arrayOfFonts[i][1],\r\n        arrayOfFonts[i][2],\r\n        standardFonts[i][3],\r\n        true\r\n      );\r\n\r\n      if (putOnlyUsedFonts === false) {\r\n        usedFonts[fontKey] = true;\r\n      }\r\n      // adding aliases for standard fonts, this time matching the capitalization\r\n      var parts = arrayOfFonts[i][0].split(\"-\");\r\n      addFontToFontDictionary({\r\n        id: fontKey,\r\n        fontName: parts[0],\r\n        fontStyle: parts[1] || \"\"\r\n      });\r\n    }\r\n    events.publish(\"addFonts\", {\r\n      fonts: fonts,\r\n      dictionary: fontmap\r\n    });\r\n  };\r\n\r\n  var SAFE = function __safeCall(fn) {\r\n    fn.foo = function __safeCallWrapper() {\r\n      try {\r\n        return fn.apply(this, arguments);\r\n      } catch (e) {\r\n        var stack = e.stack || \"\";\r\n        if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\r\n        var m =\r\n          \"Error in function \" +\r\n          stack.split(\"\\n\")[0].split(\"<\")[0] +\r\n          \": \" +\r\n          e.message;\r\n        if (globalObject.console) {\r\n          globalObject.console.error(m, e);\r\n          if (globalObject.alert) alert(m);\r\n        } else {\r\n          throw new Error(m);\r\n        }\r\n      }\r\n    };\r\n    fn.foo.bar = fn;\r\n    return fn.foo;\r\n  };\r\n\r\n  var to8bitStream = function(text, flags) {\r\n    /**\r\n     * PDF 1.3 spec:\r\n     * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\r\n     * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\r\n     * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\r\n     * to be a meaningful beginning of a word or phrase.) The remainder of the\r\n     * string consists of Unicode character codes, according to the UTF-16 encoding\r\n     * specified in the Unicode standard, version 2.0. Commonly used Unicode values\r\n     * are represented as 2 bytes per character, with the high-order byte appearing first\r\n     * in the string.\"\r\n     *\r\n     * In other words, if there are chars in a string with char code above 255, we\r\n     * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\r\n     *\r\n     * HOWEVER!\r\n     * Actual *content* (body) text (as opposed to strings used in document properties etc)\r\n     * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\r\n     *\r\n     * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\r\n     * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\r\n     * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\r\n     * code page. There, however, all characters in the stream are treated as GIDs,\r\n     * including BOM, which is the reason we need to skip BOM in content text (i.e. that\r\n     * that is tied to a font).\r\n     *\r\n     * To signal this \"special\" PDFEscape / to8bitStream handling mode,\r\n     * API.text() function sets (unless you overwrite it with manual values\r\n     * given to API.text(.., flags) )\r\n     * flags.autoencode = true\r\n     * flags.noBOM = true\r\n     *\r\n     * ===================================================================================\r\n     * `flags` properties relied upon:\r\n     *   .sourceEncoding = string with encoding label.\r\n     *                     \"Unicode\" by default. = encoding of the incoming text.\r\n     *                     pass some non-existing encoding name\r\n     *                     (ex: 'Do not touch my strings! I know what I am doing.')\r\n     *                     to make encoding code skip the encoding step.\r\n     *   .outputEncoding = Either valid PDF encoding name\r\n     *                     (must be supported by jsPDF font metrics, otherwise no encoding)\r\n     *                     or a JS object, where key = sourceCharCode, value = outputCharCode\r\n     *                     missing keys will be treated as: sourceCharCode === outputCharCode\r\n     *   .noBOM\r\n     *       See comment higher above for explanation for why this is important\r\n     *   .autoencode\r\n     *       See comment higher above for explanation for why this is important\r\n     */\r\n\r\n    var i,\r\n      l,\r\n      sourceEncoding,\r\n      encodingBlock,\r\n      outputEncoding,\r\n      newtext,\r\n      isUnicode,\r\n      ch,\r\n      bch;\r\n\r\n    flags = flags || {};\r\n    sourceEncoding = flags.sourceEncoding || \"Unicode\";\r\n    outputEncoding = flags.outputEncoding;\r\n\r\n    // This 'encoding' section relies on font metrics format\r\n    // attached to font objects by, among others,\r\n    // \"Willow Systems' standard_font_metrics plugin\"\r\n    // see jspdf.plugin.standard_font_metrics.js for format\r\n    // of the font.metadata.encoding Object.\r\n    // It should be something like\r\n    //   .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\r\n    //   .widths = {0:width, code:width, ..., 'fof':divisor}\r\n    //   .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\r\n    if (\r\n      (flags.autoencode || outputEncoding) &&\r\n      fonts[activeFontKey].metadata &&\r\n      fonts[activeFontKey].metadata[sourceEncoding] &&\r\n      fonts[activeFontKey].metadata[sourceEncoding].encoding\r\n    ) {\r\n      encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\r\n\r\n      // each font has default encoding. Some have it clearly defined.\r\n      if (!outputEncoding && fonts[activeFontKey].encoding) {\r\n        outputEncoding = fonts[activeFontKey].encoding;\r\n      }\r\n\r\n      // Hmmm, the above did not work? Let's try again, in different place.\r\n      if (!outputEncoding && encodingBlock.codePages) {\r\n        outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\r\n      }\r\n\r\n      if (typeof outputEncoding === \"string\") {\r\n        outputEncoding = encodingBlock[outputEncoding];\r\n      }\r\n      // we want output encoding to be a JS Object, where\r\n      // key = sourceEncoding's character code and\r\n      // value = outputEncoding's character code.\r\n      if (outputEncoding) {\r\n        isUnicode = false;\r\n        newtext = [];\r\n        for (i = 0, l = text.length; i < l; i++) {\r\n          ch = outputEncoding[text.charCodeAt(i)];\r\n          if (ch) {\r\n            newtext.push(String.fromCharCode(ch));\r\n          } else {\r\n            newtext.push(text[i]);\r\n          }\r\n\r\n          // since we are looping over chars anyway, might as well\r\n          // check for residual unicodeness\r\n          if (newtext[i].charCodeAt(0) >> 8) {\r\n            /* more than 255 */\r\n            isUnicode = true;\r\n          }\r\n        }\r\n        text = newtext.join(\"\");\r\n      }\r\n    }\r\n\r\n    i = text.length;\r\n    // isUnicode may be set to false above. Hence the triple-equal to undefined\r\n    while (isUnicode === undefined && i !== 0) {\r\n      if (text.charCodeAt(i - 1) >> 8) {\r\n        /* more than 255 */\r\n        isUnicode = true;\r\n      }\r\n      i--;\r\n    }\r\n    if (!isUnicode) {\r\n      return text;\r\n    }\r\n\r\n    newtext = flags.noBOM ? [] : [254, 255];\r\n    for (i = 0, l = text.length; i < l; i++) {\r\n      ch = text.charCodeAt(i);\r\n      bch = ch >> 8; // divide by 256\r\n      if (bch >> 8) {\r\n        /* something left after dividing by 256 second time */\r\n        throw new Error(\r\n          \"Character at position \" +\r\n            i +\r\n            \" of string '\" +\r\n            text +\r\n            \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\r\n        );\r\n      }\r\n      newtext.push(bch);\r\n      newtext.push(ch - (bch << 8));\r\n    }\r\n    return String.fromCharCode.apply(undefined, newtext);\r\n  };\r\n\r\n  var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\r\n    text,\r\n    flags\r\n  ) {\r\n    /**\r\n     * Replace '/', '(', and ')' with pdf-safe versions\r\n     *\r\n     * Doing to8bitStream does NOT make this PDF display unicode text. For that\r\n     * we also need to reference a unicode font and embed it - royal pain in the rear.\r\n     *\r\n     * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\r\n     * which JavaScript Strings are happy to provide. So, while we still cannot display\r\n     * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\r\n     * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\r\n     * is still parseable.\r\n     * This will allow immediate support for unicode in document properties strings.\r\n     */\r\n    return to8bitStream(text, flags)\r\n      .replace(/\\\\/g, \"\\\\\\\\\")\r\n      .replace(/\\(/g, \"\\\\(\")\r\n      .replace(/\\)/g, \"\\\\)\");\r\n  });\r\n\r\n  var beginPage = (API.__private__.beginPage = function(format) {\r\n    pages[++page] = [];\r\n    pagesContext[page] = {\r\n      objId: 0,\r\n      contentsObjId: 0,\r\n      userUnit: Number(userUnit),\r\n      artBox: null,\r\n      bleedBox: null,\r\n      cropBox: null,\r\n      trimBox: null,\r\n      mediaBox: {\r\n        bottomLeftX: 0,\r\n        bottomLeftY: 0,\r\n        topRightX: Number(format[0]),\r\n        topRightY: Number(format[1])\r\n      }\r\n    };\r\n    _setPage(page);\r\n    setOutputDestination(pages[currentPage]);\r\n  });\r\n\r\n  var _addPage = function(parmFormat, parmOrientation) {\r\n    var dimensions, width, height;\r\n\r\n    orientation = parmOrientation || orientation;\r\n\r\n    if (typeof parmFormat === \"string\") {\r\n      dimensions = getPageFormat(parmFormat.toLowerCase());\r\n      if (Array.isArray(dimensions)) {\r\n        width = dimensions[0];\r\n        height = dimensions[1];\r\n      }\r\n    }\r\n\r\n    if (Array.isArray(parmFormat)) {\r\n      width = parmFormat[0] * scaleFactor;\r\n      height = parmFormat[1] * scaleFactor;\r\n    }\r\n\r\n    if (isNaN(width)) {\r\n      width = format[0];\r\n      height = format[1];\r\n    }\r\n\r\n    if (width > 14400 || height > 14400) {\r\n      console.warn(\r\n        \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\r\n      );\r\n      width = Math.min(14400, width);\r\n      height = Math.min(14400, height);\r\n    }\r\n\r\n    format = [width, height];\r\n\r\n    switch (orientation.substr(0, 1)) {\r\n      case \"l\":\r\n        if (height > width) {\r\n          format = [height, width];\r\n        }\r\n        break;\r\n      case \"p\":\r\n        if (width > height) {\r\n          format = [height, width];\r\n        }\r\n        break;\r\n    }\r\n\r\n    beginPage(format);\r\n\r\n    // Set line width\r\n    setLineWidth(lineWidth);\r\n    // Set draw color\r\n    out(strokeColor);\r\n    // resurrecting non-default line caps, joins\r\n    if (lineCapID !== 0) {\r\n      out(lineCapID + \" J\");\r\n    }\r\n    if (lineJoinID !== 0) {\r\n      out(lineJoinID + \" j\");\r\n    }\r\n    events.publish(\"addPage\", {\r\n      pageNumber: page\r\n    });\r\n  };\r\n\r\n  var _deletePage = function(n) {\r\n    if (n > 0 && n <= page) {\r\n      pages.splice(n, 1);\r\n      pagesContext.splice(n, 1);\r\n      page--;\r\n      if (currentPage > page) {\r\n        currentPage = page;\r\n      }\r\n      this.setPage(currentPage);\r\n    }\r\n  };\r\n\r\n  var _setPage = function(n) {\r\n    if (n > 0 && n <= page) {\r\n      currentPage = n;\r\n    }\r\n  };\r\n\r\n  var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\r\n    return pages.length - 1;\r\n  });\r\n\r\n  /**\r\n   * Returns a document-specific font key - a label assigned to a\r\n   * font name + font type combination at the time the font was added\r\n   * to the font inventory.\r\n   *\r\n   * Font key is used as label for the desired font for a block of text\r\n   * to be added to the PDF document stream.\r\n   * @private\r\n   * @function\r\n   * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n   * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n   * @returns {string} Font key.\r\n   * @ignore\r\n   */\r\n  var getFont = function(fontName, fontStyle, options) {\r\n    var key = undefined,\r\n      fontNameLowerCase;\r\n    options = options || {};\r\n\r\n    fontName =\r\n      fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\r\n    fontStyle =\r\n      fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\r\n    fontNameLowerCase = fontName.toLowerCase();\r\n\r\n    if (\r\n      fontmap[fontNameLowerCase] !== undefined &&\r\n      fontmap[fontNameLowerCase][fontStyle] !== undefined\r\n    ) {\r\n      key = fontmap[fontNameLowerCase][fontStyle];\r\n    } else if (\r\n      fontmap[fontName] !== undefined &&\r\n      fontmap[fontName][fontStyle] !== undefined\r\n    ) {\r\n      key = fontmap[fontName][fontStyle];\r\n    } else {\r\n      if (options.disableWarning === false) {\r\n        console.warn(\r\n          \"Unable to look up font label for font '\" +\r\n            fontName +\r\n            \"', '\" +\r\n            fontStyle +\r\n            \"'. Refer to getFontList() for available fonts.\"\r\n        );\r\n      }\r\n    }\r\n\r\n    if (!key && !options.noFallback) {\r\n      key = fontmap[\"times\"][fontStyle];\r\n      if (key == null) {\r\n        key = fontmap[\"times\"][\"normal\"];\r\n      }\r\n    }\r\n    return key;\r\n  };\r\n\r\n  var putInfo = (API.__private__.putInfo = function() {\r\n    var objectId = newObject();\r\n    var encryptor = function(data) {\r\n      return data;\r\n    };\r\n    if (encryptionOptions !== null) {\r\n      encryptor = encryption.encryptor(objectId, 0);\r\n    }\r\n    out(\"<<\");\r\n    out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\r\n    for (var key in documentProperties) {\r\n      if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\r\n        out(\r\n          \"/\" +\r\n            key.substr(0, 1).toUpperCase() +\r\n            key.substr(1) +\r\n            \" (\" +\r\n            pdfEscape(encryptor(documentProperties[key])) +\r\n            \")\"\r\n        );\r\n      }\r\n    }\r\n    out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  });\r\n\r\n  var putCatalog = (API.__private__.putCatalog = function(options) {\r\n    options = options || {};\r\n    var tmpRootDictionaryObjId =\r\n      options.rootDictionaryObjId || rootDictionaryObjId;\r\n    newObject();\r\n    out(\"<<\");\r\n    out(\"/Type /Catalog\");\r\n    out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\r\n    // PDF13ref Section 7.2.1\r\n    if (!zoomMode) zoomMode = \"fullwidth\";\r\n    switch (zoomMode) {\r\n      case \"fullwidth\":\r\n        out(\"/OpenAction [3 0 R /FitH null]\");\r\n        break;\r\n      case \"fullheight\":\r\n        out(\"/OpenAction [3 0 R /FitV null]\");\r\n        break;\r\n      case \"fullpage\":\r\n        out(\"/OpenAction [3 0 R /Fit]\");\r\n        break;\r\n      case \"original\":\r\n        out(\"/OpenAction [3 0 R /XYZ null null 1]\");\r\n        break;\r\n      default:\r\n        var pcn = \"\" + zoomMode;\r\n        if (pcn.substr(pcn.length - 1) === \"%\")\r\n          zoomMode = parseInt(zoomMode) / 100;\r\n        if (typeof zoomMode === \"number\") {\r\n          out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\r\n        }\r\n    }\r\n    if (!layoutMode) layoutMode = \"continuous\";\r\n    switch (layoutMode) {\r\n      case \"continuous\":\r\n        out(\"/PageLayout /OneColumn\");\r\n        break;\r\n      case \"single\":\r\n        out(\"/PageLayout /SinglePage\");\r\n        break;\r\n      case \"two\":\r\n      case \"twoleft\":\r\n        out(\"/PageLayout /TwoColumnLeft\");\r\n        break;\r\n      case \"tworight\":\r\n        out(\"/PageLayout /TwoColumnRight\");\r\n        break;\r\n    }\r\n    if (pageMode) {\r\n      /**\r\n       * A name object specifying how the document should be displayed when opened:\r\n       * UseNone      : Neither document outline nor thumbnail images visible -- DEFAULT\r\n       * UseOutlines  : Document outline visible\r\n       * UseThumbs    : Thumbnail images visible\r\n       * FullScreen   : Full-screen mode, with no menu bar, window controls, or any other window visible\r\n       */\r\n      out(\"/PageMode /\" + pageMode);\r\n    }\r\n    events.publish(\"putCatalog\");\r\n    out(\">>\");\r\n    out(\"endobj\");\r\n  });\r\n\r\n  var putTrailer = (API.__private__.putTrailer = function() {\r\n    out(\"trailer\");\r\n    out(\"<<\");\r\n    out(\"/Size \" + (objectNumber + 1));\r\n    // Root and Info must be the last and second last objects written respectively\r\n    out(\"/Root \" + objectNumber + \" 0 R\");\r\n    out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\r\n    if (encryptionOptions !== null) {\r\n      out(\"/Encrypt \" + encryption.oid + \" 0 R\");\r\n    }\r\n    out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\r\n    out(\">>\");\r\n  });\r\n\r\n  var putHeader = (API.__private__.putHeader = function() {\r\n    out(\"%PDF-\" + pdfVersion);\r\n    out(\"%\\xBA\\xDF\\xAC\\xE0\");\r\n  });\r\n\r\n  var putXRef = (API.__private__.putXRef = function() {\r\n    var p = \"0000000000\";\r\n\r\n    out(\"xref\");\r\n    out(\"0 \" + (objectNumber + 1));\r\n    out(\"0000000000 65535 f \");\r\n    for (var i = 1; i <= objectNumber; i++) {\r\n      var offset = offsets[i];\r\n      if (typeof offset === \"function\") {\r\n        out((p + offsets[i]()).slice(-10) + \" 00000 n \");\r\n      } else {\r\n        if (typeof offsets[i] !== \"undefined\") {\r\n          out((p + offsets[i]).slice(-10) + \" 00000 n \");\r\n        } else {\r\n          out(\"0000000000 00000 n \");\r\n        }\r\n      }\r\n    }\r\n  });\r\n\r\n  var buildDocument = (API.__private__.buildDocument = function() {\r\n    resetDocument();\r\n    setOutputDestination(content);\r\n\r\n    events.publish(\"buildDocument\");\r\n\r\n    putHeader();\r\n    putPages();\r\n    putAdditionalObjects();\r\n    putResources();\r\n    if (encryptionOptions !== null) putEncryptionDict();\r\n    putInfo();\r\n    putCatalog();\r\n\r\n    var offsetOfXRef = contentLength;\r\n    putXRef();\r\n    putTrailer();\r\n    out(\"startxref\");\r\n    out(\"\" + offsetOfXRef);\r\n    out(\"%%EOF\");\r\n\r\n    setOutputDestination(pages[currentPage]);\r\n\r\n    return content.join(\"\\n\");\r\n  });\r\n\r\n  var getBlob = (API.__private__.getBlob = function(data) {\r\n    return new Blob([getArrayBuffer(data)], {\r\n      type: \"application/pdf\"\r\n    });\r\n  });\r\n\r\n  /**\r\n   * Generates the PDF document.\r\n   *\r\n   * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\r\n   *\r\n   * @param {string} type A string identifying one of the possible output types.<br/>\r\n   *                      Possible values are: <br/>\r\n   *                          'arraybuffer' -> (ArrayBuffer)<br/>\r\n   *                          'blob' -> (Blob)<br/>\r\n   *                          'bloburi'/'bloburl' -> (string)<br/>\r\n   *                          'datauristring'/'dataurlstring' -> (string)<br/>\r\n   *                          'datauri'/'dataurl' -> (undefined) -> change location to generated datauristring/dataurlstring<br/>\r\n   *                          'dataurlnewwindow' -> (window | null | undefined) throws error if global isn't a window object(node)<br/>\r\n   *                          'pdfobjectnewwindow' -> (window | null) throws error if global isn't a window object(node)<br/>\r\n   *                          'pdfjsnewwindow' -> (wind | null)\r\n   * @param {Object|string} options An object providing some additional signalling to PDF generator.<br/>\r\n   *                                Possible options are 'filename'.<br/>\r\n   *                                A string can be passed instead of {filename:string} and defaults to 'generated.pdf'\r\n   * @function\r\n   * @instance\r\n   * @returns {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}\r\n   * @memberof jsPDF#\r\n   * @name output\r\n   */\r\n  var output = (API.output = API.__private__.output = SAFE(function output(\r\n    type,\r\n    options\r\n  ) {\r\n    options = options || {};\r\n\r\n    if (typeof options === \"string\") {\r\n      options = {\r\n        filename: options\r\n      };\r\n    } else {\r\n      options.filename = options.filename || \"generated.pdf\";\r\n    }\r\n\r\n    switch (type) {\r\n      case undefined:\r\n        return buildDocument();\r\n      case \"save\":\r\n        API.save(options.filename);\r\n        break;\r\n      case \"arraybuffer\":\r\n        return getArrayBuffer(buildDocument());\r\n      case \"blob\":\r\n        return getBlob(buildDocument());\r\n      case \"bloburi\":\r\n      case \"bloburl\":\r\n        // Developer is responsible of calling revokeObjectURL\r\n        if (\r\n          typeof globalObject.URL !== \"undefined\" &&\r\n          typeof globalObject.URL.createObjectURL === \"function\"\r\n        ) {\r\n          return (\r\n            (globalObject.URL &&\r\n              globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\r\n            void 0\r\n          );\r\n        } else {\r\n          console.warn(\r\n            \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\r\n          );\r\n        }\r\n        break;\r\n      case \"datauristring\":\r\n      case \"dataurlstring\":\r\n        var dataURI = \"\";\r\n        var pdfDocument = buildDocument();\r\n        try {\r\n          dataURI = btoa(pdfDocument);\r\n        } catch (e) {\r\n          dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\r\n        }\r\n        return (\r\n          \"data:application/pdf;filename=\" +\r\n          options.filename +\r\n          \";base64,\" +\r\n          dataURI\r\n        );\r\n      case \"pdfobjectnewwindow\":\r\n        if (\r\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n        ) {\r\n          var pdfObjectUrl =\r\n            \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\r\n          var integrity =\r\n            ' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';\r\n\r\n          if (options.pdfObjectUrl) {\r\n            pdfObjectUrl = options.pdfObjectUrl;\r\n            integrity = \"\";\r\n          }\r\n\r\n          var htmlForNewWindow =\r\n            \"<html>\" +\r\n            '<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><script src=\"' +\r\n            pdfObjectUrl +\r\n            '\"' +\r\n            integrity +\r\n            '></script><script >PDFObject.embed(\"' +\r\n            this.output(\"dataurlstring\") +\r\n            '\", ' +\r\n            JSON.stringify(options) +\r\n            \");</script></body></html>\";\r\n          var nW = globalObject.open();\r\n\r\n          if (nW !== null) {\r\n            nW.document.write(htmlForNewWindow);\r\n          }\r\n          return nW;\r\n        } else {\r\n          throw new Error(\r\n            \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n          );\r\n        }\r\n      case \"pdfjsnewwindow\":\r\n        if (\r\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n        ) {\r\n          var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n          var htmlForPDFjsNewWindow =\r\n            \"<html>\" +\r\n            \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>\" +\r\n            '<body><iframe id=\"pdfViewer\" src=\"' +\r\n            pdfJsUrl +\r\n            \"?file=&downloadName=\" +\r\n            options.filename +\r\n            '\" width=\"500px\" height=\"400px\" />' +\r\n            \"</body></html>\";\r\n          var PDFjsNewWindow = globalObject.open();\r\n\r\n          if (PDFjsNewWindow !== null) {\r\n            PDFjsNewWindow.document.write(htmlForPDFjsNewWindow);\r\n            var scope = this;\r\n            PDFjsNewWindow.document.documentElement.querySelector(\r\n              \"#pdfViewer\"\r\n            ).onload = function() {\r\n              PDFjsNewWindow.document.title = options.filename;\r\n              PDFjsNewWindow.document.documentElement\r\n                .querySelector(\"#pdfViewer\")\r\n                .contentWindow.PDFViewerApplication.open(\r\n                  scope.output(\"bloburl\")\r\n                );\r\n            };\r\n          }\r\n          return PDFjsNewWindow;\r\n        } else {\r\n          throw new Error(\r\n            \"The option pdfjsnewwindow just works in a browser-environment.\"\r\n          );\r\n        }\r\n      case \"dataurlnewwindow\":\r\n        if (\r\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n        ) {\r\n          var htmlForDataURLNewWindow =\r\n            \"<html>\" +\r\n            \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>\" +\r\n            \"<body>\" +\r\n            '<iframe src=\"' +\r\n            this.output(\"datauristring\", options) +\r\n            '\"></iframe>' +\r\n            \"</body></html>\";\r\n          var dataURLNewWindow = globalObject.open();\r\n          if (dataURLNewWindow !== null) {\r\n            dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n            dataURLNewWindow.document.title = options.filename;\r\n          }\r\n          if (dataURLNewWindow || typeof safari === \"undefined\")\r\n            return dataURLNewWindow;\r\n        } else {\r\n          throw new Error(\r\n            \"The option dataurlnewwindow just works in a browser-environment.\"\r\n          );\r\n        }\r\n        break;\r\n      case \"datauri\":\r\n      case \"dataurl\":\r\n        return (globalObject.document.location.href = this.output(\r\n          \"datauristring\",\r\n          options\r\n        ));\r\n      default:\r\n        return null;\r\n    }\r\n  }));\r\n\r\n  /**\r\n   * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n   * @param {string} hotfixName - The name of the hotfix to check.\r\n   * @returns {boolean}\r\n   */\r\n  var hasHotfix = function(hotfixName) {\r\n    return (\r\n      Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n    );\r\n  };\r\n\r\n  switch (unit) {\r\n    case \"pt\":\r\n      scaleFactor = 1;\r\n      break;\r\n    case \"mm\":\r\n      scaleFactor = 72 / 25.4;\r\n      break;\r\n    case \"cm\":\r\n      scaleFactor = 72 / 2.54;\r\n      break;\r\n    case \"in\":\r\n      scaleFactor = 72;\r\n      break;\r\n    case \"px\":\r\n      if (hasHotfix(\"px_scaling\") == true) {\r\n        scaleFactor = 72 / 96;\r\n      } else {\r\n        scaleFactor = 96 / 72;\r\n      }\r\n      break;\r\n    case \"pc\":\r\n      scaleFactor = 12;\r\n      break;\r\n    case \"em\":\r\n      scaleFactor = 12;\r\n      break;\r\n    case \"ex\":\r\n      scaleFactor = 6;\r\n      break;\r\n    default:\r\n      if (typeof unit === \"number\") {\r\n        scaleFactor = unit;\r\n      } else {\r\n        throw new Error(\"Invalid unit: \" + unit);\r\n      }\r\n  }\r\n\r\n  var encryption = null;\r\n  setCreationDate();\r\n  setFileId();\r\n\r\n  var getEncryptor = function(objectId) {\r\n    if (encryptionOptions !== null) {\r\n      return encryption.encryptor(objectId, 0);\r\n    }\r\n    return function(data) {\r\n      return data;\r\n    };\r\n  };\r\n\r\n  //---------------------------------------\r\n  // Public API\r\n\r\n  var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n    pageNumberOneBased\r\n  ) {\r\n    if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n    }\r\n    var objId = pagesContext[pageNumberOneBased].objId;\r\n    return {\r\n      objId: objId,\r\n      pageNumber: pageNumberOneBased,\r\n      pageContext: pagesContext[pageNumberOneBased]\r\n    };\r\n  });\r\n\r\n  var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n    objId\r\n  ) {\r\n    if (isNaN(objId) || objId % 1 !== 0) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n    }\r\n    for (var pageNumber in pagesContext) {\r\n      if (pagesContext[pageNumber].objId === objId) {\r\n        break;\r\n      }\r\n    }\r\n    return getPageInfo(pageNumber);\r\n  });\r\n\r\n  var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n    return {\r\n      objId: pagesContext[currentPage].objId,\r\n      pageNumber: currentPage,\r\n      pageContext: pagesContext[currentPage]\r\n    };\r\n  });\r\n\r\n  /**\r\n   * Adds (and transfers the focus to) new page to the PDF document.\r\n   * @param format {String/Array} The format of the new page. Can be: <ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\r\n   * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n   * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   *\r\n   * @memberof jsPDF#\r\n   * @name addPage\r\n   */\r\n  API.addPage = function() {\r\n    _addPage.apply(this, arguments);\r\n    return this;\r\n  };\r\n  /**\r\n   * Adds (and transfers the focus to) new page to the PDF document.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   *\r\n   * @memberof jsPDF#\r\n   * @name setPage\r\n   * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n   * @example\r\n   * doc = jsPDF()\r\n   * doc.addPage()\r\n   * doc.addPage()\r\n   * doc.text('I am on page 3', 10, 10)\r\n   * doc.setPage(1)\r\n   * doc.text('I am on page 1', 10, 10)\r\n   */\r\n  API.setPage = function() {\r\n    _setPage.apply(this, arguments);\r\n    setOutputDestination.call(this, pages[currentPage]);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * @name insertPage\r\n   * @memberof jsPDF#\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @param {Object} beforePage\r\n   * @returns {jsPDF}\r\n   */\r\n  API.insertPage = function(beforePage) {\r\n    this.addPage();\r\n    this.movePage(currentPage, beforePage);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * @name movePage\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @instance\r\n   * @param {number} targetPage\r\n   * @param {number} beforePage\r\n   * @returns {jsPDF}\r\n   */\r\n  API.movePage = function(targetPage, beforePage) {\r\n    var tmpPages, tmpPagesContext;\r\n    if (targetPage > beforePage) {\r\n      tmpPages = pages[targetPage];\r\n      tmpPagesContext = pagesContext[targetPage];\r\n      for (var i = targetPage; i > beforePage; i--) {\r\n        pages[i] = pages[i - 1];\r\n        pagesContext[i] = pagesContext[i - 1];\r\n      }\r\n      pages[beforePage] = tmpPages;\r\n      pagesContext[beforePage] = tmpPagesContext;\r\n      this.setPage(beforePage);\r\n    } else if (targetPage < beforePage) {\r\n      tmpPages = pages[targetPage];\r\n      tmpPagesContext = pagesContext[targetPage];\r\n      for (var j = targetPage; j < beforePage; j++) {\r\n        pages[j] = pages[j + 1];\r\n        pagesContext[j] = pagesContext[j + 1];\r\n      }\r\n      pages[beforePage] = tmpPages;\r\n      pagesContext[beforePage] = tmpPagesContext;\r\n      this.setPage(beforePage);\r\n    }\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Deletes a page from the PDF.\r\n   * @name deletePage\r\n   * @memberof jsPDF#\r\n   * @function\r\n   * @param {number} targetPage\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   */\r\n  API.deletePage = function() {\r\n    _deletePage.apply(this, arguments);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n   * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n   * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n   * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n   * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n   * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n   * @param {number} [options.charSpace=0] - The space between each letter.\r\n   * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n   * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n   * @param {Object} [options.flags] - Flags for to8bitStream.\r\n   * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n   * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n   * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n   * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n   * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n   * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n   * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n   * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n   * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n   * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n   *\r\n   * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n   * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n   * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n   * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name text\r\n   */\r\n  API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n    /*\r\n     * Inserts something like this into PDF\r\n     *   BT\r\n     *    /F1 16 Tf  % Font name + size\r\n     *    16 TL % How many units down for next line in multiline text\r\n     *    0 g % color\r\n     *    28.35 813.54 Td % position\r\n     *    (line one) Tj\r\n     *    T* (line two) Tj\r\n     *    T* (line three) Tj\r\n     *   ET\r\n     */\r\n    options = options || {};\r\n    var scope = options.scope || this;\r\n    var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n    // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n    // in effort to make all calls have similar signature like\r\n    //   function(data, coordinates... , miscellaneous)\r\n    // this method had its args flipped.\r\n    // code below allows backward compatibility with old arg order.\r\n    if (\r\n      typeof text === \"number\" &&\r\n      typeof x === \"number\" &&\r\n      (typeof y === \"string\" || Array.isArray(y))\r\n    ) {\r\n      var tmp = y;\r\n      y = x;\r\n      x = text;\r\n      text = tmp;\r\n    }\r\n\r\n    var transformationMatrix;\r\n\r\n    if (arguments[3] instanceof Matrix === false) {\r\n      flags = arguments[3];\r\n      angle = arguments[4];\r\n      align = arguments[5];\r\n\r\n      if (typeof flags !== \"object\" || flags === null) {\r\n        if (typeof angle === \"string\") {\r\n          align = angle;\r\n          angle = null;\r\n        }\r\n        if (typeof flags === \"string\") {\r\n          align = flags;\r\n          flags = null;\r\n        }\r\n        if (typeof flags === \"number\") {\r\n          angle = flags;\r\n          flags = null;\r\n        }\r\n        options = {\r\n          flags: flags,\r\n          angle: angle,\r\n          align: align\r\n        };\r\n      }\r\n    } else {\r\n      advancedApiModeTrap(\r\n        \"The transform parameter of text() with a Matrix value\"\r\n      );\r\n      transformationMatrix = transform;\r\n    }\r\n\r\n    if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n    }\r\n\r\n    if (text.length === 0) {\r\n      return scope;\r\n    }\r\n\r\n    var xtra = \"\";\r\n    var isHex = false;\r\n    var lineHeight =\r\n      typeof options.lineHeightFactor === \"number\"\r\n        ? options.lineHeightFactor\r\n        : lineHeightFactor;\r\n    var scaleFactor = scope.internal.scaleFactor;\r\n\r\n    function ESC(s) {\r\n      s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n      return pdfEscape(s, flags);\r\n    }\r\n\r\n    function transformTextToSpecialArray(text) {\r\n      //we don't want to destroy original text array, so cloning it\r\n      var sa = text.concat();\r\n      var da = [];\r\n      var len = sa.length;\r\n      var curDa;\r\n      //we do array.join('text that must not be PDFescaped\")\r\n      //thus, pdfEscape each component separately\r\n      while (len--) {\r\n        curDa = sa.shift();\r\n        if (typeof curDa === \"string\") {\r\n          da.push(curDa);\r\n        } else {\r\n          if (\r\n            Array.isArray(text) &&\r\n            (curDa.length === 1 ||\r\n              (curDa[1] === undefined && curDa[2] === undefined))\r\n          ) {\r\n            da.push(curDa[0]);\r\n          } else {\r\n            da.push([curDa[0], curDa[1], curDa[2]]);\r\n          }\r\n        }\r\n      }\r\n      return da;\r\n    }\r\n\r\n    function processTextByFunction(text, processingFunction) {\r\n      var result;\r\n      if (typeof text === \"string\") {\r\n        result = processingFunction(text)[0];\r\n      } else if (Array.isArray(text)) {\r\n        //we don't want to destroy original text array, so cloning it\r\n        var sa = text.concat();\r\n        var da = [];\r\n        var len = sa.length;\r\n        var curDa;\r\n        var tmpResult;\r\n        //we do array.join('text that must not be PDFescaped\")\r\n        //thus, pdfEscape each component separately\r\n        while (len--) {\r\n          curDa = sa.shift();\r\n          if (typeof curDa === \"string\") {\r\n            da.push(processingFunction(curDa)[0]);\r\n          } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n            tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n            da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n          }\r\n        }\r\n        result = da;\r\n      }\r\n      return result;\r\n    }\r\n\r\n    //Check if text is of type String\r\n    var textIsOfTypeString = false;\r\n    var tmpTextIsOfTypeString = true;\r\n\r\n    if (typeof text === \"string\") {\r\n      textIsOfTypeString = true;\r\n    } else if (Array.isArray(text)) {\r\n      //we don't want to destroy original text array, so cloning it\r\n      var sa = text.concat();\r\n      da = [];\r\n      var len = sa.length;\r\n      var curDa;\r\n      //we do array.join('text that must not be PDFescaped\")\r\n      //thus, pdfEscape each component separately\r\n      while (len--) {\r\n        curDa = sa.shift();\r\n        if (\r\n          typeof curDa !== \"string\" ||\r\n          (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n        ) {\r\n          tmpTextIsOfTypeString = false;\r\n        }\r\n      }\r\n      textIsOfTypeString = tmpTextIsOfTypeString;\r\n    }\r\n    if (textIsOfTypeString === false) {\r\n      throw new Error(\r\n        'Type of text must be string or Array. \"' +\r\n          text +\r\n          '\" is not recognized.'\r\n      );\r\n    }\r\n\r\n    //If there are any newlines in text, we assume\r\n    //the user wanted to print multiple lines, so break the\r\n    //text up into an array. If the text is already an array,\r\n    //we assume the user knows what they are doing.\r\n    //Convert text into an array anyway to simplify\r\n    //later code.\r\n\r\n    if (typeof text === \"string\") {\r\n      if (text.match(/[\\r?\\n]/)) {\r\n        text = text.split(/\\r\\n|\\r|\\n/g);\r\n      } else {\r\n        text = [text];\r\n      }\r\n    }\r\n\r\n    //baseline\r\n    var height = activeFontSize / scope.internal.scaleFactor;\r\n    var descent = height * (lineHeight - 1);\r\n\r\n    switch (options.baseline) {\r\n      case \"bottom\":\r\n        y -= descent;\r\n        break;\r\n      case \"top\":\r\n        y += height - descent;\r\n        break;\r\n      case \"hanging\":\r\n        y += height - 2 * descent;\r\n        break;\r\n      case \"middle\":\r\n        y += height / 2 - descent;\r\n        break;\r\n      case \"ideographic\":\r\n      case \"alphabetic\":\r\n      default:\r\n        // do nothing, everything is fine\r\n        break;\r\n    }\r\n\r\n    //multiline\r\n    maxWidth = options.maxWidth || 0;\r\n\r\n    if (maxWidth > 0) {\r\n      if (typeof text === \"string\") {\r\n        text = scope.splitTextToSize(text, maxWidth);\r\n      } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n        text = text.reduce(function(acc, textLine) {\r\n          return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n        }, []);\r\n      }\r\n    }\r\n\r\n    //creating Payload-Object to make text byRef\r\n    payload = {\r\n      text: text,\r\n      x: x,\r\n      y: y,\r\n      options: options,\r\n      mutex: {\r\n        pdfEscape: pdfEscape,\r\n        activeFontKey: activeFontKey,\r\n        fonts: fonts,\r\n        activeFontSize: activeFontSize\r\n      }\r\n    };\r\n    events.publish(\"preProcessText\", payload);\r\n\r\n    text = payload.text;\r\n    options = payload.options;\r\n\r\n    //angle\r\n    angle = options.angle;\r\n\r\n    if (\r\n      transformationMatrix instanceof Matrix === false &&\r\n      angle &&\r\n      typeof angle === \"number\"\r\n    ) {\r\n      angle *= Math.PI / 180;\r\n\r\n      if (options.rotationDirection === 0) {\r\n        angle = -angle;\r\n      }\r\n\r\n      if (apiMode === ApiMode.ADVANCED) {\r\n        angle = -angle;\r\n      }\r\n\r\n      var c = Math.cos(angle);\r\n      var s = Math.sin(angle);\r\n      transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n    } else if (angle && angle instanceof Matrix) {\r\n      transformationMatrix = angle;\r\n    }\r\n\r\n    if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n      transformationMatrix = identityMatrix;\r\n    }\r\n\r\n    //charSpace\r\n\r\n    charSpace = options.charSpace || activeCharSpace;\r\n\r\n    if (typeof charSpace !== \"undefined\") {\r\n      xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n      this.setCharSpace(this.getCharSpace() || 0);\r\n    }\r\n\r\n    horizontalScale = options.horizontalScale;\r\n    if (typeof horizontalScale !== \"undefined\") {\r\n      xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n    }\r\n\r\n    //lang\r\n\r\n    var lang = options.lang;\r\n\r\n    if (lang) {\r\n      //    xtra += \"/Lang (\" + lang +\")\\n\";\r\n    }\r\n\r\n    //renderingMode\r\n    var renderingMode = -1;\r\n    var parmRenderingMode =\r\n      typeof options.renderingMode !== \"undefined\"\r\n        ? options.renderingMode\r\n        : options.stroke;\r\n    var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n    switch (parmRenderingMode) {\r\n      case 0:\r\n      case false:\r\n      case \"fill\":\r\n        renderingMode = 0;\r\n        break;\r\n      case 1:\r\n      case true:\r\n      case \"stroke\":\r\n        renderingMode = 1;\r\n        break;\r\n      case 2:\r\n      case \"fillThenStroke\":\r\n        renderingMode = 2;\r\n        break;\r\n      case 3:\r\n      case \"invisible\":\r\n        renderingMode = 3;\r\n        break;\r\n      case 4:\r\n      case \"fillAndAddForClipping\":\r\n        renderingMode = 4;\r\n        break;\r\n      case 5:\r\n      case \"strokeAndAddPathForClipping\":\r\n        renderingMode = 5;\r\n        break;\r\n      case 6:\r\n      case \"fillThenStrokeAndAddToPathForClipping\":\r\n        renderingMode = 6;\r\n        break;\r\n      case 7:\r\n      case \"addToPathForClipping\":\r\n        renderingMode = 7;\r\n        break;\r\n    }\r\n\r\n    var usedRenderingMode =\r\n      typeof pageContext.usedRenderingMode !== \"undefined\"\r\n        ? pageContext.usedRenderingMode\r\n        : -1;\r\n\r\n    //if the coder wrote it explicitly to use a specific\r\n    //renderingMode, then use it\r\n    if (renderingMode !== -1) {\r\n      xtra += renderingMode + \" Tr\\n\";\r\n      //otherwise check if we used the rendering Mode already\r\n      //if so then set the rendering Mode...\r\n    } else if (usedRenderingMode !== -1) {\r\n      xtra += \"0 Tr\\n\";\r\n    }\r\n\r\n    if (renderingMode !== -1) {\r\n      pageContext.usedRenderingMode = renderingMode;\r\n    }\r\n\r\n    //align\r\n    align = options.align || \"left\";\r\n    var leading = activeFontSize * lineHeight;\r\n    var pageWidth = scope.internal.pageSize.getWidth();\r\n    var activeFont = fonts[activeFontKey];\r\n    charSpace = options.charSpace || activeCharSpace;\r\n    maxWidth = options.maxWidth || 0;\r\n\r\n    var lineWidths;\r\n    flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n    var wordSpacingPerLine = [];\r\n    var findWidth = function(v) {\r\n      return (\r\n        (scope.getStringUnitWidth(v, {\r\n          font: activeFont,\r\n          charSpace: charSpace,\r\n          fontSize: activeFontSize,\r\n          doKerning: false\r\n        }) *\r\n          activeFontSize) /\r\n        scaleFactor\r\n      );\r\n    };\r\n    if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n      da = transformTextToSpecialArray(text);\r\n      var newY;\r\n      if (align !== \"left\") {\r\n        lineWidths = da.map(findWidth);\r\n      }\r\n      //The first line uses the \"main\" Td setting,\r\n      //and the subsequent lines are offset by the\r\n      //previous line's x coordinate.\r\n      var prevWidth = 0;\r\n      var newX;\r\n      if (align === \"right\") {\r\n        //The passed in x coordinate defines the\r\n        //rightmost point of the text.\r\n        x -= lineWidths[0];\r\n        text = [];\r\n        len = da.length;\r\n        for (var i = 0; i < len; i++) {\r\n          if (i === 0) {\r\n            newX = getHorizontalCoordinate(x);\r\n            newY = getVerticalCoordinate(y);\r\n          } else {\r\n            newX = scale(prevWidth - lineWidths[i]);\r\n            newY = -leading;\r\n          }\r\n          text.push([da[i], newX, newY]);\r\n          prevWidth = lineWidths[i];\r\n        }\r\n      } else if (align === \"center\") {\r\n        //The passed in x coordinate defines\r\n        //the center point.\r\n        x -= lineWidths[0] / 2;\r\n        text = [];\r\n        len = da.length;\r\n        for (var j = 0; j < len; j++) {\r\n          if (j === 0) {\r\n            newX = getHorizontalCoordinate(x);\r\n            newY = getVerticalCoordinate(y);\r\n          } else {\r\n            newX = scale((prevWidth - lineWidths[j]) / 2);\r\n            newY = -leading;\r\n          }\r\n          text.push([da[j], newX, newY]);\r\n          prevWidth = lineWidths[j];\r\n        }\r\n      } else if (align === \"left\") {\r\n        text = [];\r\n        len = da.length;\r\n        for (var h = 0; h < len; h++) {\r\n          text.push(da[h]);\r\n        }\r\n      } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n        // when using unicode fonts, wordSpacePerLine does not apply\r\n        text = [];\r\n        len = da.length;\r\n        maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n        let backToStartX = 0;\r\n        for (var l = 0; l < len; l++) {\r\n          newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n          newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n          if (l < len - 1) {\r\n            let spacing = scale(\r\n              (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n            );\r\n            let words = da[l].split(\" \");\r\n            text.push([words[0] + \" \", newX, newY]);\r\n            backToStartX = 0; // distance to reset back to the left\r\n            for (let i = 1; i < words.length; i++) {\r\n              let shiftAmount =\r\n                (findWidth(words[i - 1] + \" \" + words[i]) -\r\n                  findWidth(words[i])) *\r\n                  scaleFactor +\r\n                spacing;\r\n              if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n              else text.push([words[i] + \" \", shiftAmount, 0]);\r\n              backToStartX -= shiftAmount;\r\n            }\r\n          } else {\r\n            text.push([da[l], newX, newY]);\r\n          }\r\n        }\r\n        text.push([\"\", backToStartX, 0]);\r\n      } else if (align === \"justify\") {\r\n        text = [];\r\n        len = da.length;\r\n        maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n        for (var l = 0; l < len; l++) {\r\n          newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n          newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n          if (l < len - 1) {\r\n            wordSpacingPerLine.push(\r\n              hpf(\r\n                scale(\r\n                  (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n                )\r\n              )\r\n            );\r\n          } else {\r\n            wordSpacingPerLine.push(0);\r\n          }\r\n          text.push([da[l], newX, newY]);\r\n        }\r\n      } else {\r\n        throw new Error(\r\n          'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n        );\r\n      }\r\n    }\r\n\r\n    //R2L\r\n    var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n    if (doReversing === true) {\r\n      text = processTextByFunction(text, function(text, posX, posY) {\r\n        return [\r\n          text\r\n            .split(\"\")\r\n            .reverse()\r\n            .join(\"\"),\r\n          posX,\r\n          posY\r\n        ];\r\n      });\r\n    }\r\n\r\n    //creating Payload-Object to make text byRef\r\n    payload = {\r\n      text: text,\r\n      x: x,\r\n      y: y,\r\n      options: options,\r\n      mutex: {\r\n        pdfEscape: pdfEscape,\r\n        activeFontKey: activeFontKey,\r\n        fonts: fonts,\r\n        activeFontSize: activeFontSize\r\n      }\r\n    };\r\n    events.publish(\"postProcessText\", payload);\r\n\r\n    text = payload.text;\r\n    isHex = payload.mutex.isHex || false;\r\n\r\n    //Escaping\r\n    var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n    if (\r\n      activeFontEncoding === \"WinAnsiEncoding\" ||\r\n      activeFontEncoding === \"StandardEncoding\"\r\n    ) {\r\n      text = processTextByFunction(text, function(text, posX, posY) {\r\n        return [ESC(text), posX, posY];\r\n      });\r\n    }\r\n\r\n    da = transformTextToSpecialArray(text);\r\n\r\n    text = [];\r\n    var STRING = 0;\r\n    var ARRAY = 1;\r\n    var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n    var posX;\r\n    var posY;\r\n    var content;\r\n    var wordSpacing = \"\";\r\n\r\n    var generatePosition = function(\r\n      parmPosX,\r\n      parmPosY,\r\n      parmTransformationMatrix\r\n    ) {\r\n      var position = \"\";\r\n      if (parmTransformationMatrix instanceof Matrix) {\r\n        // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n        // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n        // in the coordinate system established by this matrix\r\n        if (typeof options.angle === \"number\") {\r\n          parmTransformationMatrix = matrixMult(\r\n            parmTransformationMatrix,\r\n            new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n          );\r\n        } else {\r\n          parmTransformationMatrix = matrixMult(\r\n            new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n            parmTransformationMatrix\r\n          );\r\n        }\r\n\r\n        if (apiMode === ApiMode.ADVANCED) {\r\n          parmTransformationMatrix = matrixMult(\r\n            new Matrix(1, 0, 0, -1, 0, 0),\r\n            parmTransformationMatrix\r\n          );\r\n        }\r\n\r\n        position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n      } else {\r\n        position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n      }\r\n      return position;\r\n    };\r\n\r\n    for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n      wordSpacing = \"\";\r\n\r\n      switch (variant) {\r\n        case ARRAY:\r\n          content =\r\n            (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n          posX = parseFloat(da[lineIndex][1]);\r\n          posY = parseFloat(da[lineIndex][2]);\r\n          break;\r\n        case STRING:\r\n          content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n          posX = getHorizontalCoordinate(x);\r\n          posY = getVerticalCoordinate(y);\r\n          break;\r\n      }\r\n\r\n      if (\r\n        typeof wordSpacingPerLine !== \"undefined\" &&\r\n        typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n      ) {\r\n        wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n      }\r\n\r\n      if (lineIndex === 0) {\r\n        text.push(\r\n          wordSpacing +\r\n            generatePosition(posX, posY, transformationMatrix) +\r\n            content\r\n        );\r\n      } else if (variant === STRING) {\r\n        text.push(wordSpacing + content);\r\n      } else if (variant === ARRAY) {\r\n        text.push(\r\n          wordSpacing +\r\n            generatePosition(posX, posY, transformationMatrix) +\r\n            content\r\n        );\r\n      }\r\n    }\r\n\r\n    text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n    text += \" Tj\\n\";\r\n\r\n    var result = \"BT\\n/\";\r\n    result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n    result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n    result += textColor + \"\\n\";\r\n    result += xtra;\r\n    result += text;\r\n    result += \"ET\";\r\n\r\n    out(result);\r\n    usedFonts[activeFontKey] = true;\r\n    return scope;\r\n  };\r\n\r\n  // PDF supports these path painting and clip path operators:\r\n  //\r\n  // S - stroke\r\n  // s - close/stroke\r\n  // f (F) - fill non-zero\r\n  // f* - fill evenodd\r\n  // B - fill stroke nonzero\r\n  // B* - fill stroke evenodd\r\n  // b - close fill stroke nonzero\r\n  // b* - close fill stroke evenodd\r\n  // n - nothing (consume path)\r\n  // W - clip nonzero\r\n  // W* - clip evenodd\r\n  //\r\n  // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n  // method.\r\n  /**\r\n   *\r\n   * @name clip\r\n   * @function\r\n   * @instance\r\n   * @param {string} rule Only possible value is 'evenodd'\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @description All .clip() after calling drawing ops with a style argument of null.\r\n   */\r\n  var clip = (API.__private__.clip = API.clip = function(rule) {\r\n    // Call .clip() after calling drawing ops with a style argument of null\r\n    // W is the PDF clipping op\r\n    if (\"evenodd\" === rule) {\r\n      out(\"W*\");\r\n    } else {\r\n      out(\"W\");\r\n    }\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * @name clipEvenOdd\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n   * that this will NOT consume the current path. In order to only use this path for clipping call\r\n   * {@link API.discardPath} afterwards.\r\n   */\r\n  API.clipEvenOdd = function() {\r\n    return clip(\"evenodd\");\r\n  };\r\n\r\n  /**\r\n   * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n   * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n   * @name discardPath\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.__private__.discardPath = API.discardPath = function() {\r\n    out(\"n\");\r\n    return this;\r\n  };\r\n\r\n  var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n    var validStyleVariants = [\r\n      undefined,\r\n      null,\r\n      \"S\",\r\n      \"D\",\r\n      \"F\",\r\n      \"DF\",\r\n      \"FD\",\r\n      \"f\",\r\n      \"f*\",\r\n      \"B\",\r\n      \"B*\",\r\n      \"n\"\r\n    ];\r\n    var result = false;\r\n    if (validStyleVariants.indexOf(style) !== -1) {\r\n      result = true;\r\n    }\r\n    return result;\r\n  });\r\n\r\n  API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n    operator\r\n  ) {\r\n    if (isValidStyle(operator)) {\r\n      defaultPathOperation = operator;\r\n    }\r\n    return this;\r\n  };\r\n\r\n  var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n    // see path-painting operators in PDF spec\r\n    var op = defaultPathOperation; // stroke\r\n\r\n    switch (style) {\r\n      case \"D\":\r\n      case \"S\":\r\n        op = \"S\"; // stroke\r\n        break;\r\n      case \"F\":\r\n        op = \"f\"; // fill\r\n        break;\r\n      case \"FD\":\r\n      case \"DF\":\r\n        op = \"B\";\r\n        break;\r\n      case \"f\":\r\n      case \"f*\":\r\n      case \"B\":\r\n      case \"B*\":\r\n        /*\r\n               Allow direct use of these PDF path-painting operators:\r\n               - f    fill using nonzero winding number rule\r\n               - f*    fill using even-odd rule\r\n               - B    fill then stroke with fill using non-zero winding number rule\r\n               - B*    fill then stroke with fill using even-odd rule\r\n               */\r\n        op = style;\r\n        break;\r\n    }\r\n    return op;\r\n  });\r\n\r\n  /**\r\n   * Close the current path. The PDF \"h\" operator.\r\n   * @name close\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  var close = (API.close = function() {\r\n    out(\"h\");\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Stroke the path. The PDF \"S\" operator.\r\n   * @name stroke\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.stroke = function() {\r\n    out(\"S\");\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n   * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n   * @name fill\r\n   * @function\r\n   * @instance\r\n   * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.fill = function(pattern) {\r\n    fillWithOptionalPattern(\"f\", pattern);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Fill the current path using the even-odd rule. The PDF f* operator.\r\n   * @see API.fill\r\n   * @name fillEvenOdd\r\n   * @function\r\n   * @instance\r\n   * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.fillEvenOdd = function(pattern) {\r\n    fillWithOptionalPattern(\"f*\", pattern);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n   * @see API.fill\r\n   * @name fillStroke\r\n   * @function\r\n   * @instance\r\n   * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.fillStroke = function(pattern) {\r\n    fillWithOptionalPattern(\"B\", pattern);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n   * @see API.fill\r\n   * @name fillStrokeEvenOdd\r\n   * @function\r\n   * @instance\r\n   * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.fillStrokeEvenOdd = function(pattern) {\r\n    fillWithOptionalPattern(\"B*\", pattern);\r\n    return this;\r\n  };\r\n\r\n  var fillWithOptionalPattern = function(style, pattern) {\r\n    if (typeof pattern === \"object\") {\r\n      fillWithPattern(pattern, style);\r\n    } else {\r\n      out(style);\r\n    }\r\n  };\r\n\r\n  var putStyle = function(style) {\r\n    if (\r\n      style === null ||\r\n      (apiMode === ApiMode.ADVANCED && style === undefined)\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    style = getStyle(style);\r\n\r\n    // stroking / filling / both the path\r\n    out(style);\r\n  };\r\n\r\n  function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n    var clone = new TilingPattern(\r\n      boundingBox || this.boundingBox,\r\n      xStep || this.xStep,\r\n      yStep || this.yStep,\r\n      this.gState,\r\n      matrix || this.matrix\r\n    );\r\n    clone.stream = this.stream;\r\n    var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n    addPattern(key, clone);\r\n    return clone;\r\n  }\r\n\r\n  var fillWithPattern = function(patternData, style) {\r\n    var patternId = patternMap[patternData.key];\r\n    var pattern = patterns[patternId];\r\n\r\n    if (pattern instanceof ShadingPattern) {\r\n      out(\"q\");\r\n\r\n      out(clipRuleFromStyle(style));\r\n\r\n      if (pattern.gState) {\r\n        API.setGState(pattern.gState);\r\n      }\r\n      out(patternData.matrix.toString() + \" cm\");\r\n      out(\"/\" + patternId + \" sh\");\r\n      out(\"Q\");\r\n    } else if (pattern instanceof TilingPattern) {\r\n      // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n      // so we must flip them\r\n      var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n      if (patternData.matrix) {\r\n        matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n        // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n        // for each use\r\n        patternId = cloneTilingPattern.call(\r\n          pattern,\r\n          patternData.key,\r\n          patternData.boundingBox,\r\n          patternData.xStep,\r\n          patternData.yStep,\r\n          matrix\r\n        ).id;\r\n      }\r\n\r\n      out(\"q\");\r\n      out(\"/Pattern cs\");\r\n      out(\"/\" + patternId + \" scn\");\r\n\r\n      if (pattern.gState) {\r\n        API.setGState(pattern.gState);\r\n      }\r\n\r\n      out(style);\r\n      out(\"Q\");\r\n    }\r\n  };\r\n\r\n  var clipRuleFromStyle = function(style) {\r\n    switch (style) {\r\n      case \"f\":\r\n      case \"F\":\r\n        return \"W n\";\r\n      case \"f*\":\r\n        return \"W* n\";\r\n      case \"B\":\r\n        return \"W S\";\r\n      case \"B*\":\r\n        return \"W* S\";\r\n\r\n      // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n      // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n      case \"S\":\r\n        return \"W S\";\r\n      case \"n\":\r\n        return \"W n\";\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @name moveTo\r\n   * @function\r\n   * @instance\r\n   * @memberof jsPDF#\r\n   * @returns {jsPDF}\r\n   */\r\n  var moveTo = (API.moveTo = function(x, y) {\r\n    out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @memberof jsPDF#\r\n   * @name lineTo\r\n   * @function\r\n   * @instance\r\n   * @memberof jsPDF#\r\n   * @returns {jsPDF}\r\n   */\r\n  var lineTo = (API.lineTo = function(x, y) {\r\n    out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n   * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n   * @param {number} x1\r\n   * @param {number} y1\r\n   * @param {number} x2\r\n   * @param {number} y2\r\n   * @param {number} x3\r\n   * @param {number} y3\r\n   * @memberof jsPDF#\r\n   * @name curveTo\r\n   * @function\r\n   * @instance\r\n   * @memberof jsPDF#\r\n   * @returns {jsPDF}\r\n   */\r\n  var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n    out(\r\n      [\r\n        hpf(scale(x1)),\r\n        hpf(transformScaleY(y1)),\r\n        hpf(scale(x2)),\r\n        hpf(transformScaleY(y2)),\r\n        hpf(scale(x3)),\r\n        hpf(transformScaleY(y3)),\r\n        \"c\"\r\n      ].join(\" \")\r\n    );\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Draw a line on the current page.\r\n   *\r\n   * @name line\r\n   * @function\r\n   * @instance\r\n   * @param {number} x1\r\n   * @param {number} y1\r\n   * @param {number} x2\r\n   * @param {number} y2\r\n   * @param {string} style A string specifying the painting style or null.  Valid styles include: 'S' [default] - stroke, 'F' - fill,  and 'DF' (or 'FD') -  fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   */\r\n  API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n    if (\r\n      isNaN(x1) ||\r\n      isNaN(y1) ||\r\n      isNaN(x2) ||\r\n      isNaN(y2) ||\r\n      !isValidStyle(style)\r\n    ) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n    }\r\n    if (apiMode === ApiMode.COMPAT) {\r\n      return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n    } else {\r\n      return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n    }\r\n  };\r\n\r\n  /**\r\n   * @typedef {Object} PatternData\r\n   * {Matrix|undefined} matrix\r\n   * {Number|undefined} xStep\r\n   * {Number|undefined} yStep\r\n   * {Array.<Number>|undefined} boundingBox\r\n   */\r\n\r\n  /**\r\n   * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n   * All data points in `lines` are relative to last line origin.\r\n   * `x`, `y` become x1,y1 for first line / curve in the set.\r\n   * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n   * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n   *\r\n   * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n   * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name lines\r\n   */\r\n  API.__private__.lines = API.lines = function(\r\n    lines,\r\n    x,\r\n    y,\r\n    scale,\r\n    style,\r\n    closed\r\n  ) {\r\n    var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n    // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n    // in effort to make all calls have similar signature like\r\n    //   function(content, coordinateX, coordinateY , miscellaneous)\r\n    // this method had its args flipped.\r\n    // code below allows backward compatibility with old arg order.\r\n    if (typeof lines === \"number\") {\r\n      tmp = y;\r\n      y = x;\r\n      x = lines;\r\n      lines = tmp;\r\n    }\r\n\r\n    scale = scale || [1, 1];\r\n    closed = closed || false;\r\n\r\n    if (\r\n      isNaN(x) ||\r\n      isNaN(y) ||\r\n      !Array.isArray(lines) ||\r\n      !Array.isArray(scale) ||\r\n      !isValidStyle(style) ||\r\n      typeof closed !== \"boolean\"\r\n    ) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n    }\r\n\r\n    // starting point\r\n    moveTo(x, y);\r\n\r\n    scalex = scale[0];\r\n    scaley = scale[1];\r\n    l = lines.length;\r\n    //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n    //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n    // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n    x4 = x; // last / ending point = starting point for first item.\r\n    y4 = y; // last / ending point = starting point for first item.\r\n\r\n    for (i = 0; i < l; i++) {\r\n      leg = lines[i];\r\n      if (leg.length === 2) {\r\n        // simple line\r\n        x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n        y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n        lineTo(x4, y4);\r\n      } else {\r\n        // bezier curve\r\n        x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n        y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n        x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n        y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n        x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n        y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n        curveTo(x2, y2, x3, y3, x4, y4);\r\n      }\r\n    }\r\n\r\n    if (closed) {\r\n      close();\r\n    }\r\n\r\n    putStyle(style);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n   * @param {Array<Object>} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n   * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n   * six and \"h\" an empty array (or undefined).\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name path\r\n   */\r\n  API.path = function(lines) {\r\n    for (var i = 0; i < lines.length; i++) {\r\n      var leg = lines[i];\r\n      var coords = leg.c;\r\n      switch (leg.op) {\r\n        case \"m\":\r\n          moveTo(coords[0], coords[1]);\r\n          break;\r\n        case \"l\":\r\n          lineTo(coords[0], coords[1]);\r\n          break;\r\n        case \"c\":\r\n          curveTo.apply(this, coords);\r\n          break;\r\n        case \"h\":\r\n          close();\r\n          break;\r\n      }\r\n    }\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds a rectangle to PDF.\r\n   *\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} w Width (in units declared at inception of PDF document)\r\n   * @param {number} h Height (in units declared at inception of PDF document)\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name rect\r\n   */\r\n  API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n    }\r\n    if (apiMode === ApiMode.COMPAT) {\r\n      h = -h;\r\n    }\r\n\r\n    out(\r\n      [\r\n        hpf(scale(x)),\r\n        hpf(transformScaleY(y)),\r\n        hpf(scale(w)),\r\n        hpf(scale(h)),\r\n        \"re\"\r\n      ].join(\" \")\r\n    );\r\n\r\n    putStyle(style);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds a triangle to PDF.\r\n   *\r\n   * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name triangle\r\n   */\r\n  API.__private__.triangle = API.triangle = function(\r\n    x1,\r\n    y1,\r\n    x2,\r\n    y2,\r\n    x3,\r\n    y3,\r\n    style\r\n  ) {\r\n    if (\r\n      isNaN(x1) ||\r\n      isNaN(y1) ||\r\n      isNaN(x2) ||\r\n      isNaN(y2) ||\r\n      isNaN(x3) ||\r\n      isNaN(y3) ||\r\n      !isValidStyle(style)\r\n    ) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n    }\r\n    this.lines(\r\n      [\r\n        [x2 - x1, y2 - y1], // vector to point 2\r\n        [x3 - x2, y3 - y2], // vector to point 3\r\n        [x1 - x3, y1 - y3] // closing vector back to point 1\r\n      ],\r\n      x1,\r\n      y1, // start of path\r\n      [1, 1],\r\n      style,\r\n      true\r\n    );\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds a rectangle with rounded corners to PDF.\r\n   *\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} w Width (in units declared at inception of PDF document)\r\n   * @param {number} h Height (in units declared at inception of PDF document)\r\n   * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n   * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name roundedRect\r\n   */\r\n  API.__private__.roundedRect = API.roundedRect = function(\r\n    x,\r\n    y,\r\n    w,\r\n    h,\r\n    rx,\r\n    ry,\r\n    style\r\n  ) {\r\n    if (\r\n      isNaN(x) ||\r\n      isNaN(y) ||\r\n      isNaN(w) ||\r\n      isNaN(h) ||\r\n      isNaN(rx) ||\r\n      isNaN(ry) ||\r\n      !isValidStyle(style)\r\n    ) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n    }\r\n    var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n    rx = Math.min(rx, w * 0.5);\r\n    ry = Math.min(ry, h * 0.5);\r\n\r\n    this.lines(\r\n      [\r\n        [w - 2 * rx, 0],\r\n        [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n        [0, h - 2 * ry],\r\n        [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n        [-w + 2 * rx, 0],\r\n        [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n        [0, -h + 2 * ry],\r\n        [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n      ],\r\n      x + rx,\r\n      y, // start of path\r\n      [1, 1],\r\n      style,\r\n      true\r\n    );\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds an ellipse to PDF.\r\n   *\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n   * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name ellipse\r\n   */\r\n  API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n    if (\r\n      isNaN(x) ||\r\n      isNaN(y) ||\r\n      isNaN(rx) ||\r\n      isNaN(ry) ||\r\n      !isValidStyle(style)\r\n    ) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n    }\r\n    var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n      ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n    moveTo(x + rx, y);\r\n    curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n    curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n    curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n    curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n    putStyle(style);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Adds an circle to PDF.\r\n   *\r\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n   * @param {number} r Radius (in units declared at inception of PDF document)\r\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n   * 'S' [default] - stroke,\r\n   * 'F' - fill,\r\n   * and 'DF' (or 'FD') -  fill then stroke.\r\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n   *\r\n   * In \"advanced\" API mode this parameter is deprecated.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name circle\r\n   */\r\n  API.__private__.circle = API.circle = function(x, y, r, style) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n    }\r\n    return this.ellipse(x, y, r, r, style);\r\n  };\r\n\r\n  /**\r\n   * Sets text font face, variant for upcoming text elements.\r\n   * See output of jsPDF.getFontList() for possible font names, styles.\r\n   *\r\n   * @param {string} fontName Font name or family. Example: \"times\".\r\n   * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n   * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setFont\r\n   */\r\n  API.setFont = function(fontName, fontStyle, fontWeight) {\r\n    if (fontWeight) {\r\n      fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n    }\r\n    activeFontKey = getFont(fontName, fontStyle, {\r\n      disableWarning: false\r\n    });\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Gets text font face, variant for upcoming text elements.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {Object}\r\n   * @memberof jsPDF#\r\n   * @name getFont\r\n   */\r\n  var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n    return fonts[getFont.apply(API, arguments)];\r\n  });\r\n\r\n  /**\r\n   * Returns an object - a tree of fontName to fontStyle relationships available to\r\n   * active PDF document.\r\n   *\r\n   * @public\r\n   * @function\r\n   * @instance\r\n   * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n   * @memberof jsPDF#\r\n   * @name getFontList\r\n   */\r\n  API.__private__.getFontList = API.getFontList = function() {\r\n    var list = {},\r\n      fontName,\r\n      fontStyle;\r\n\r\n    for (fontName in fontmap) {\r\n      if (fontmap.hasOwnProperty(fontName)) {\r\n        list[fontName] = [];\r\n        for (fontStyle in fontmap[fontName]) {\r\n          if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n            list[fontName].push(fontStyle);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return list;\r\n  };\r\n\r\n  /**\r\n   * Add a custom font to the current instance.\r\n   *\r\n   * @param {string} postScriptName PDF specification full name for the font.\r\n   * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n   * @param {string} fontStyle Style of the Font.\r\n   * @param {number | string} fontWeight Weight of the Font.\r\n   * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n   * @function\r\n   * @instance\r\n   * @memberof jsPDF#\r\n   * @name addFont\r\n   * @returns {string} fontId\r\n   */\r\n  API.addFont = function(\r\n    postScriptName,\r\n    fontName,\r\n    fontStyle,\r\n    fontWeight,\r\n    encoding\r\n  ) {\r\n    var encodingOptions = [\r\n      \"StandardEncoding\",\r\n      \"MacRomanEncoding\",\r\n      \"Identity-H\",\r\n      \"WinAnsiEncoding\"\r\n    ];\r\n    if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n      //IE 11 fix\r\n      encoding = arguments[3];\r\n    } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n      fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n    }\r\n    encoding = encoding || \"Identity-H\";\r\n    return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n  };\r\n\r\n  var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n  /**\r\n   * Gets the line width, default: 0.200025.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {number} lineWidth\r\n   * @memberof jsPDF#\r\n   * @name getLineWidth\r\n   */\r\n  var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n    return lineWidth;\r\n  });\r\n\r\n  /**\r\n   * Sets line width for upcoming lines.\r\n   *\r\n   * @param {number} width Line width (in units declared at inception of PDF document).\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineWidth\r\n   */\r\n  var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n    width\r\n  ) {\r\n    lineWidth = width;\r\n    out(hpf(scale(width)) + \" w\");\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Sets the dash pattern for upcoming lines.\r\n   *\r\n   * To reset the settings simply call the method without any parameters.\r\n   * @param {Array<number>} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n   * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n   * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n   * @param {number} dashPhase The phase lines start with.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineDashPattern\r\n   */\r\n  API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n    dashArray,\r\n    dashPhase\r\n  ) {\r\n    dashArray = dashArray || [];\r\n    dashPhase = dashPhase || 0;\r\n\r\n    if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n      throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n    }\r\n\r\n    dashArray = dashArray\r\n      .map(function(x) {\r\n        return hpf(scale(x));\r\n      })\r\n      .join(\" \");\r\n    dashPhase = hpf(scale(dashPhase));\r\n\r\n    out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n    return this;\r\n  };\r\n\r\n  var lineHeightFactor;\r\n\r\n  var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n    return activeFontSize * lineHeightFactor;\r\n  });\r\n\r\n  API.__private__.getLineHeight = API.getLineHeight = function() {\r\n    return activeFontSize * lineHeightFactor;\r\n  };\r\n\r\n  /**\r\n   * Sets the LineHeightFactor of proportion.\r\n   *\r\n   * @param {number} value LineHeightFactor value. Default: 1.15.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineHeightFactor\r\n   */\r\n  var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n    value\r\n  ) {\r\n    value = value || 1.15;\r\n    if (typeof value === \"number\") {\r\n      lineHeightFactor = value;\r\n    }\r\n    return this;\r\n  });\r\n\r\n  /**\r\n   * Gets the LineHeightFactor, default: 1.15.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {number} lineHeightFactor\r\n   * @memberof jsPDF#\r\n   * @name getLineHeightFactor\r\n   */\r\n  var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n    return lineHeightFactor;\r\n  });\r\n\r\n  setLineHeightFactor(options.lineHeight);\r\n\r\n  var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n    value\r\n  ) {\r\n    return scale(value);\r\n  });\r\n\r\n  var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n    value\r\n  ) {\r\n    if (apiMode === ApiMode.ADVANCED) {\r\n      return value;\r\n    } else {\r\n      var pageHeight =\r\n        pagesContext[currentPage].mediaBox.topRightY -\r\n        pagesContext[currentPage].mediaBox.bottomLeftY;\r\n      return pageHeight - scale(value);\r\n    }\r\n  });\r\n\r\n  var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n    value\r\n  ) {\r\n    return hpf(getHorizontalCoordinate(value));\r\n  });\r\n\r\n  var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n    value\r\n  ) {\r\n    return hpf(getVerticalCoordinate(value));\r\n  });\r\n\r\n  var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n  /**\r\n   *  Gets the stroke color for upcoming elements.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {string} colorAsHex\r\n   * @memberof jsPDF#\r\n   * @name getDrawColor\r\n   */\r\n  API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n    return decodeColorString(strokeColor);\r\n  };\r\n\r\n  /**\r\n   * Sets the stroke color for upcoming elements.\r\n   *\r\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n   * color space is implied.\r\n   *\r\n   * When only ch1 is given, \"Gray\" color space is implied and it\r\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n   * if values are communicated as String types, or in range from 0 (black)\r\n   * to 255 (white) if communicated as Number type.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n   * (max intensity) if values are communicated as String types, or\r\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n   * as Number types.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n   * value must be a in the range from 0.00 (0% concentration) to to\r\n   * 1.00 (100% concentration)\r\n   *\r\n   * Because JavaScript treats fixed point numbers badly (rounds to\r\n   * floating point nearest to binary representation) it is highly advised to\r\n   * communicate the fractional numbers as String types, not JavaScript Number type.\r\n   *\r\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n   * @param {Number} ch2 Color channel value.\r\n   * @param {Number} ch3 Color channel value.\r\n   * @param {Number} ch4 Color channel value.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setDrawColor\r\n   */\r\n  API.__private__.setStrokeColor = API.setDrawColor = function(\r\n    ch1,\r\n    ch2,\r\n    ch3,\r\n    ch4\r\n  ) {\r\n    var options = {\r\n      ch1: ch1,\r\n      ch2: ch2,\r\n      ch3: ch3,\r\n      ch4: ch4,\r\n      pdfColorType: \"draw\",\r\n      precision: 2\r\n    };\r\n\r\n    strokeColor = encodeColorString(options);\r\n    out(strokeColor);\r\n    return this;\r\n  };\r\n\r\n  var fillColor = options.fillColor || \"0 g\";\r\n\r\n  /**\r\n   * Gets the fill color for upcoming elements.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {string} colorAsHex\r\n   * @memberof jsPDF#\r\n   * @name getFillColor\r\n   */\r\n  API.__private__.getFillColor = API.getFillColor = function() {\r\n    return decodeColorString(fillColor);\r\n  };\r\n\r\n  /**\r\n   * Sets the fill color for upcoming elements.\r\n   *\r\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n   * color space is implied.\r\n   *\r\n   * When only ch1 is given, \"Gray\" color space is implied and it\r\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n   * if values are communicated as String types, or in range from 0 (black)\r\n   * to 255 (white) if communicated as Number type.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n   * (max intensity) if values are communicated as String types, or\r\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n   * as Number types.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n   * value must be a in the range from 0.00 (0% concentration) to to\r\n   * 1.00 (100% concentration)\r\n   *\r\n   * Because JavaScript treats fixed point numbers badly (rounds to\r\n   * floating point nearest to binary representation) it is highly advised to\r\n   * communicate the fractional numbers as String types, not JavaScript Number type.\r\n   *\r\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n   * @param {Number} ch2 Color channel value.\r\n   * @param {Number} ch3 Color channel value.\r\n   * @param {Number} ch4 Color channel value.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setFillColor\r\n   */\r\n  API.__private__.setFillColor = API.setFillColor = function(\r\n    ch1,\r\n    ch2,\r\n    ch3,\r\n    ch4\r\n  ) {\r\n    var options = {\r\n      ch1: ch1,\r\n      ch2: ch2,\r\n      ch3: ch3,\r\n      ch4: ch4,\r\n      pdfColorType: \"fill\",\r\n      precision: 2\r\n    };\r\n\r\n    fillColor = encodeColorString(options);\r\n    out(fillColor);\r\n    return this;\r\n  };\r\n\r\n  var textColor = options.textColor || \"0 g\";\r\n  /**\r\n   * Gets the text color for upcoming elements.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {string} colorAsHex\r\n   * @memberof jsPDF#\r\n   * @name getTextColor\r\n   */\r\n  var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n    return decodeColorString(textColor);\r\n  });\r\n  /**\r\n   * Sets the text color for upcoming elements.\r\n   *\r\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n   * color space is implied.\r\n   *\r\n   * When only ch1 is given, \"Gray\" color space is implied and it\r\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n   * if values are communicated as String types, or in range from 0 (black)\r\n   * to 255 (white) if communicated as Number type.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n   * (max intensity) if values are communicated as String types, or\r\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n   * as Number types.\r\n   * The RGB-like 0-255 range is provided for backward compatibility.\r\n   *\r\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n   * value must be a in the range from 0.00 (0% concentration) to to\r\n   * 1.00 (100% concentration)\r\n   *\r\n   * Because JavaScript treats fixed point numbers badly (rounds to\r\n   * floating point nearest to binary representation) it is highly advised to\r\n   * communicate the fractional numbers as String types, not JavaScript Number type.\r\n   *\r\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n   * @param {Number} ch2 Color channel value.\r\n   * @param {Number} ch3 Color channel value.\r\n   * @param {Number} ch4 Color channel value.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setTextColor\r\n   */\r\n  API.__private__.setTextColor = API.setTextColor = function(\r\n    ch1,\r\n    ch2,\r\n    ch3,\r\n    ch4\r\n  ) {\r\n    var options = {\r\n      ch1: ch1,\r\n      ch2: ch2,\r\n      ch3: ch3,\r\n      ch4: ch4,\r\n      pdfColorType: \"text\",\r\n      precision: 3\r\n    };\r\n    textColor = encodeColorString(options);\r\n\r\n    return this;\r\n  };\r\n\r\n  var activeCharSpace = options.charSpace;\r\n\r\n  /**\r\n   * Get global value of CharSpace.\r\n   *\r\n   * @function\r\n   * @instance\r\n   * @returns {number} charSpace\r\n   * @memberof jsPDF#\r\n   * @name getCharSpace\r\n   */\r\n  var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n    return parseFloat(activeCharSpace || 0);\r\n  });\r\n\r\n  /**\r\n   * Set global value of CharSpace.\r\n   *\r\n   * @param {number} charSpace\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF} jsPDF-instance\r\n   * @memberof jsPDF#\r\n   * @name setCharSpace\r\n   */\r\n  API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n    if (isNaN(charSpace)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n    }\r\n    activeCharSpace = charSpace;\r\n    return this;\r\n  };\r\n\r\n  var lineCapID = 0;\r\n  /**\r\n   * Is an Object providing a mapping from human-readable to\r\n   * integer flag values designating the varieties of line cap\r\n   * and join styles.\r\n   *\r\n   * @memberof jsPDF#\r\n   * @name CapJoinStyles\r\n   */\r\n  API.CapJoinStyles = {\r\n    0: 0,\r\n    butt: 0,\r\n    but: 0,\r\n    miter: 0,\r\n    1: 1,\r\n    round: 1,\r\n    rounded: 1,\r\n    circle: 1,\r\n    2: 2,\r\n    projecting: 2,\r\n    project: 2,\r\n    square: 2,\r\n    bevel: 2\r\n  };\r\n\r\n  /**\r\n   * Sets the line cap styles.\r\n   * See {jsPDF.CapJoinStyles} for variants.\r\n   *\r\n   * @param {String|Number} style A string or number identifying the type of line cap.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineCap\r\n   */\r\n  API.__private__.setLineCap = API.setLineCap = function(style) {\r\n    var id = API.CapJoinStyles[style];\r\n    if (id === undefined) {\r\n      throw new Error(\r\n        \"Line cap style of '\" +\r\n          style +\r\n          \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n      );\r\n    }\r\n    lineCapID = id;\r\n    out(id + \" J\");\r\n\r\n    return this;\r\n  };\r\n\r\n  var lineJoinID = 0;\r\n  /**\r\n   * Sets the line join styles.\r\n   * See {jsPDF.CapJoinStyles} for variants.\r\n   *\r\n   * @param {String|Number} style A string or number identifying the type of line join.\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineJoin\r\n   */\r\n  API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n    var id = API.CapJoinStyles[style];\r\n    if (id === undefined) {\r\n      throw new Error(\r\n        \"Line join style of '\" +\r\n          style +\r\n          \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n      );\r\n    }\r\n    lineJoinID = id;\r\n    out(id + \" j\");\r\n\r\n    return this;\r\n  };\r\n\r\n  var miterLimit;\r\n  /**\r\n   * Sets the miterLimit property, which effects the maximum miter length.\r\n   *\r\n   * @param {number} length The length of the miter\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setLineMiterLimit\r\n   */\r\n  API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n    length\r\n  ) {\r\n    length = length || 0;\r\n    if (isNaN(length)) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n    }\r\n    out(hpf(scale(length)) + \" M\");\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * An object representing a pdf graphics state.\r\n   * @class GState\r\n   */\r\n\r\n  /**\r\n   *\r\n   * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n   * Supported are: opacity, stroke-opacity\r\n   * @constructor\r\n   */\r\n  API.GState = GState;\r\n\r\n  /**\r\n   * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n   * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n   * it will be added before use.\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setGState\r\n   */\r\n  API.setGState = function(gState) {\r\n    if (typeof gState === \"string\") {\r\n      gState = gStates[gStatesMap[gState]];\r\n    } else {\r\n      gState = addGState(null, gState);\r\n    }\r\n\r\n    if (!gState.equals(activeGState)) {\r\n      out(\"/\" + gState.id + \" gs\");\r\n      activeGState = gState;\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n   * @param {String} key Might also be null, if no later reference to this gState is needed\r\n   * @param {Object} gState The gState object\r\n   */\r\n  var addGState = function(key, gState) {\r\n    // only add it if it is not already present (the keys provided by the user must be unique!)\r\n    if (key && gStatesMap[key]) return;\r\n    var duplicate = false;\r\n    for (var s in gStates) {\r\n      if (gStates.hasOwnProperty(s)) {\r\n        if (gStates[s].equals(gState)) {\r\n          duplicate = true;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (duplicate) {\r\n      gState = gStates[s];\r\n    } else {\r\n      var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n      gStates[gStateKey] = gState;\r\n      gState.id = gStateKey;\r\n    }\r\n\r\n    // several user keys may point to the same GState object\r\n    key && (gStatesMap[key] = gState.id);\r\n\r\n    events.publish(\"addGState\", gState);\r\n\r\n    return gState;\r\n  };\r\n\r\n  /**\r\n   * Adds a new {@link GState} for later use. See {@link setGState}.\r\n   * @param {String} key\r\n   * @param {GState} gState\r\n   * @function\r\n   * @instance\r\n   * @returns {jsPDF}\r\n   *\r\n   * @memberof jsPDF#\r\n   * @name addGState\r\n   */\r\n  API.addGState = function(key, gState) {\r\n    addGState(key, gState);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n   * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n   * fill and stroke colors etc.\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name saveGraphicsState\r\n   */\r\n  API.saveGraphicsState = function() {\r\n    out(\"q\");\r\n    // as we cannot set font key and size independently we must keep track of both\r\n    fontStateStack.push({\r\n      key: activeFontKey,\r\n      size: activeFontSize,\r\n      color: textColor\r\n    });\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name restoreGraphicsState\r\n   */\r\n  API.restoreGraphicsState = function() {\r\n    out(\"Q\");\r\n\r\n    // restore previous font state\r\n    var fontState = fontStateStack.pop();\r\n    activeFontKey = fontState.key;\r\n    activeFontSize = fontState.size;\r\n    textColor = fontState.color;\r\n\r\n    activeGState = null;\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Appends this matrix to the left of all previously applied matrices.\r\n   *\r\n   * @param {Matrix} matrix\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name setCurrentTransformationMatrix\r\n   */\r\n  API.setCurrentTransformationMatrix = function(matrix) {\r\n    out(matrix.toString() + \" cm\");\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Inserts a debug comment into the generated pdf.\r\n   * @function\r\n   * @instance\r\n   * @param {String} text\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name comment\r\n   */\r\n  API.comment = function(text) {\r\n    out(\"#\" + text);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Point\r\n   */\r\n  var Point = function(x, y) {\r\n    var _x = x || 0;\r\n    Object.defineProperty(this, \"x\", {\r\n      enumerable: true,\r\n      get: function() {\r\n        return _x;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _x = parseFloat(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    var _y = y || 0;\r\n    Object.defineProperty(this, \"y\", {\r\n      enumerable: true,\r\n      get: function() {\r\n        return _y;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _y = parseFloat(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    var _type = \"pt\";\r\n    Object.defineProperty(this, \"type\", {\r\n      enumerable: true,\r\n      get: function() {\r\n        return _type;\r\n      },\r\n      set: function(value) {\r\n        _type = value.toString();\r\n      }\r\n    });\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Rectangle\r\n   */\r\n  var Rectangle = function(x, y, w, h) {\r\n    Point.call(this, x, y);\r\n    this.type = \"rect\";\r\n\r\n    var _w = w || 0;\r\n    Object.defineProperty(this, \"w\", {\r\n      enumerable: true,\r\n      get: function() {\r\n        return _w;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _w = parseFloat(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    var _h = h || 0;\r\n    Object.defineProperty(this, \"h\", {\r\n      enumerable: true,\r\n      get: function() {\r\n        return _h;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _h = parseFloat(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * FormObject/RenderTarget\r\n   */\r\n\r\n  var RenderTarget = function() {\r\n    this.page = page;\r\n    this.currentPage = currentPage;\r\n    this.pages = pages.slice(0);\r\n    this.pagesContext = pagesContext.slice(0);\r\n    this.x = pageX;\r\n    this.y = pageY;\r\n    this.matrix = pageMatrix;\r\n    this.width = getPageWidth(currentPage);\r\n    this.height = getPageHeight(currentPage);\r\n    this.outputDestination = outputDestination;\r\n\r\n    this.id = \"\"; // set by endFormObject()\r\n    this.objectNumber = -1; // will be set by putXObject()\r\n  };\r\n\r\n  RenderTarget.prototype.restore = function() {\r\n    page = this.page;\r\n    currentPage = this.currentPage;\r\n    pagesContext = this.pagesContext;\r\n    pages = this.pages;\r\n    pageX = this.x;\r\n    pageY = this.y;\r\n    pageMatrix = this.matrix;\r\n    setPageWidth(currentPage, this.width);\r\n    setPageHeight(currentPage, this.height);\r\n    outputDestination = this.outputDestination;\r\n  };\r\n\r\n  var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n    // save current state\r\n    renderTargetStack.push(new RenderTarget());\r\n\r\n    // clear pages\r\n    page = currentPage = 0;\r\n    pages = [];\r\n    pageX = x;\r\n    pageY = y;\r\n\r\n    pageMatrix = matrix;\r\n\r\n    beginPage([width, height]);\r\n  };\r\n\r\n  var endFormObject = function(key) {\r\n    // only add it if it is not already present (the keys provided by the user must be unique!)\r\n    if (renderTargetMap[key]) {\r\n      renderTargetStack.pop().restore();\r\n      return;\r\n    }\r\n\r\n    // save the created xObject\r\n    var newXObject = new RenderTarget();\r\n\r\n    var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n    newXObject.id = xObjectId;\r\n\r\n    renderTargetMap[key] = xObjectId;\r\n    renderTargets[xObjectId] = newXObject;\r\n\r\n    events.publish(\"addFormObject\", newXObject);\r\n\r\n    // restore state from stack\r\n    renderTargetStack.pop().restore();\r\n  };\r\n\r\n  /**\r\n   * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n   * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n   * {@link doFormObject}. Nested form objects are possible.\r\n   * x, y, width, height set the bounding box that is used to clip the content.\r\n   *\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n   * the parent's.\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name beginFormObject\r\n   */\r\n  API.beginFormObject = function(x, y, width, height, matrix) {\r\n    // The user can set the output target to a new form object. Nested form objects are possible.\r\n    // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n    // the PDF-Spec states:\r\n    // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n    // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n    // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n    // recommended although not required\"\r\n    beginNewRenderTarget(x, y, width, height, matrix);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Completes and saves the form object.\r\n   * @param {String} key The key by which this form object can be referenced.\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name endFormObject\r\n   */\r\n  API.endFormObject = function(key) {\r\n    endFormObject(key);\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Draws the specified form object by referencing to the respective pdf XObject created with\r\n   * {@link API.beginFormObject} and {@link endFormObject}.\r\n   * The location is determined by matrix.\r\n   *\r\n   * @param {String} key The key to the form object.\r\n   * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name doFormObject\r\n   */\r\n  API.doFormObject = function(key, matrix) {\r\n    var xObject = renderTargets[renderTargetMap[key]];\r\n    out(\"q\");\r\n    out(matrix.toString() + \" cm\");\r\n    out(\"/\" + xObject.id + \" Do\");\r\n    out(\"Q\");\r\n    return this;\r\n  };\r\n\r\n  /**\r\n   * Returns the form object specified by key.\r\n   * @param key {String}\r\n   * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n   * @function\r\n   * @returns {jsPDF}\r\n   * @memberof jsPDF#\r\n   * @name getFormObject\r\n   */\r\n  API.getFormObject = function(key) {\r\n    var xObject = renderTargets[renderTargetMap[key]];\r\n    return {\r\n      x: xObject.x,\r\n      y: xObject.y,\r\n      width: xObject.width,\r\n      height: xObject.height,\r\n      matrix: xObject.matrix\r\n    };\r\n  };\r\n\r\n  /**\r\n   * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n   * Uses FileSaver.js-method saveAs.\r\n   *\r\n   * @memberof jsPDF#\r\n   * @name save\r\n   * @function\r\n   * @instance\r\n   * @param  {string} filename The filename including extension.\r\n   * @param  {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n   * @returns {jsPDF|Promise} jsPDF-instance     */\r\n  API.save = function(filename, options) {\r\n    filename = filename || \"generated.pdf\";\r\n\r\n    options = options || {};\r\n    options.returnPromise = options.returnPromise || false;\r\n\r\n\r\n    // eslint-disable-next-line no-unreachable\r\n    var fs = require(\"fs\");\r\n    var buffer = Buffer.from(getArrayBuffer(buildDocument()));\r\n    if (options.returnPromise === false) {\r\n      fs.writeFileSync(filename, buffer);\r\n    } else {\r\n      return new Promise(function(resolve, reject) {\r\n        fs.writeFile(filename, buffer, function(err) {\r\n          if (err) {\r\n            reject(err);\r\n          } else {\r\n            resolve();\r\n          }\r\n        });\r\n      });\r\n    }\r\n  };\r\n\r\n  // applying plugins (more methods) ON TOP of built-in API.\r\n  // this is intentional as we allow plugins to override\r\n  // built-ins\r\n  for (var plugin in jsPDF.API) {\r\n    if (jsPDF.API.hasOwnProperty(plugin)) {\r\n      if (plugin === \"events\" && jsPDF.API.events.length) {\r\n        (function(events, newEvents) {\r\n          // jsPDF.API.events is a JS Array of Arrays\r\n          // where each Array is a pair of event name, handler\r\n          // Events were added by plugins to the jsPDF instantiator.\r\n          // These are always added to the new instance and some ran\r\n          // during instantiation.\r\n          var eventname, handler_and_args, i;\r\n\r\n          for (i = newEvents.length - 1; i !== -1; i--) {\r\n            // subscribe takes 3 args: 'topic', function, runonce_flag\r\n            // if undefined, runonce is false.\r\n            // users can attach callback directly,\r\n            // or they can attach an array with [callback, runonce_flag]\r\n            // that's what the \"apply\" magic is for below.\r\n            eventname = newEvents[i][0];\r\n            handler_and_args = newEvents[i][1];\r\n            events.subscribe.apply(\r\n              events,\r\n              [eventname].concat(\r\n                typeof handler_and_args === \"function\"\r\n                  ? [handler_and_args]\r\n                  : handler_and_args\r\n              )\r\n            );\r\n          }\r\n        })(events, jsPDF.API.events);\r\n      } else {\r\n        API[plugin] = jsPDF.API[plugin];\r\n      }\r\n    }\r\n  }\r\n\r\n  var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n    pageNumber = pageNumber || currentPage;\r\n    return (\r\n      (pagesContext[pageNumber].mediaBox.topRightX -\r\n        pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n      scaleFactor\r\n    );\r\n  });\r\n\r\n  var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n    pagesContext[pageNumber].mediaBox.topRightX =\r\n      value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n  });\r\n\r\n  var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n    pageNumber = pageNumber || currentPage;\r\n    return (\r\n      (pagesContext[pageNumber].mediaBox.topRightY -\r\n        pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n      scaleFactor\r\n    );\r\n  });\r\n\r\n  var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n    pagesContext[pageNumber].mediaBox.topRightY =\r\n      value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n  });\r\n\r\n  /**\r\n   * Object exposing internal API to plugins\r\n   * @public\r\n   * @ignore\r\n   */\r\n  API.internal = {\r\n    pdfEscape: pdfEscape,\r\n    getStyle: getStyle,\r\n    getFont: getFontEntry,\r\n    getFontSize: getFontSize,\r\n    getCharSpace: getCharSpace,\r\n    getTextColor: getTextColor,\r\n    getLineHeight: getLineHeight,\r\n    getLineHeightFactor: getLineHeightFactor,\r\n    getLineWidth: getLineWidth,\r\n    write: write,\r\n    getHorizontalCoordinate: getHorizontalCoordinate,\r\n    getVerticalCoordinate: getVerticalCoordinate,\r\n    getCoordinateString: getHorizontalCoordinateString,\r\n    getVerticalCoordinateString: getVerticalCoordinateString,\r\n    collections: {},\r\n    newObject: newObject,\r\n    newAdditionalObject: newAdditionalObject,\r\n    newObjectDeferred: newObjectDeferred,\r\n    newObjectDeferredBegin: newObjectDeferredBegin,\r\n    getFilters: getFilters,\r\n    putStream: putStream,\r\n    events: events,\r\n    scaleFactor: scaleFactor,\r\n    pageSize: {\r\n      getWidth: function() {\r\n        return getPageWidth(currentPage);\r\n      },\r\n      setWidth: function(value) {\r\n        setPageWidth(currentPage, value);\r\n      },\r\n      getHeight: function() {\r\n        return getPageHeight(currentPage);\r\n      },\r\n      setHeight: function(value) {\r\n        setPageHeight(currentPage, value);\r\n      }\r\n    },\r\n    encryptionOptions: encryptionOptions,\r\n    encryption: encryption,\r\n    getEncryptor: getEncryptor,\r\n    output: output,\r\n    getNumberOfPages: getNumberOfPages,\r\n    pages: pages,\r\n    out: out,\r\n    f2: f2,\r\n    f3: f3,\r\n    getPageInfo: getPageInfo,\r\n    getPageInfoByObjId: getPageInfoByObjId,\r\n    getCurrentPageInfo: getCurrentPageInfo,\r\n    getPDFVersion: getPdfVersion,\r\n    Point: Point,\r\n    Rectangle: Rectangle,\r\n    Matrix: Matrix,\r\n    hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n  };\r\n\r\n  Object.defineProperty(API.internal.pageSize, \"width\", {\r\n    get: function() {\r\n      return getPageWidth(currentPage);\r\n    },\r\n    set: function(value) {\r\n      setPageWidth(currentPage, value);\r\n    },\r\n    enumerable: true,\r\n    configurable: true\r\n  });\r\n  Object.defineProperty(API.internal.pageSize, \"height\", {\r\n    get: function() {\r\n      return getPageHeight(currentPage);\r\n    },\r\n    set: function(value) {\r\n      setPageHeight(currentPage, value);\r\n    },\r\n    enumerable: true,\r\n    configurable: true\r\n  });\r\n\r\n  //////////////////////////////////////////////////////\r\n  // continuing initialization of jsPDF Document object\r\n  //////////////////////////////////////////////////////\r\n  // Add the first page automatically\r\n  addFonts.call(API, standardFonts);\r\n  activeFontKey = \"F1\";\r\n  _addPage(format, orientation);\r\n\r\n  events.publish(\"initialized\");\r\n  return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n *   // 'this' will be ref to internal API object. see jsPDF source\r\n *   // , so you can refer to built-in methods like so:\r\n *   //     this.line(....)\r\n *   //     this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n  events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n  return value\n    .replace(/\\\\/g, \"\\\\\\\\\")\n    .replace(/\\(/g, \"\\\\(\")\n    .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n  return value\n    .replace(/\\\\\\\\/g, \"\\\\\")\n    .replace(/\\\\\\(/g, \"(\")\n    .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n  return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n  return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n  child.prototype = Object.create(parent.prototype);\n  child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n  return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n  var xobj = new AcroFormXObject();\n  var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n  var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n  xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n  return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n  number = number || 0;\n  bitPosition = bitPosition || 0;\n\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n    );\n  }\n  var bitMask = 1 << bitPosition;\n\n  number |= bitMask;\n\n  return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n  number = number || 0;\n  bitPosition = bitPosition || 0;\n\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n    );\n  }\n  var bitMask = 1 << bitPosition;\n\n  number &= ~bitMask;\n\n  return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n    );\n  }\n  return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n    );\n  }\n  return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n    );\n  }\n  return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n    );\n  }\n  return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n  args,\n  scope\n) {\n  var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n  var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n  var x = args[0];\n  var y = args[1];\n  var w = args[2];\n  var h = args[3];\n\n  var coordinates = {};\n\n  coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n  coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n  coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n  coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n  return [\n    Number(f2(coordinates.lowerLeft_X)),\n    Number(f2(coordinates.lowerLeft_Y)),\n    Number(f2(coordinates.upperRight_X)),\n    Number(f2(coordinates.upperRight_Y))\n  ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n  if (formObject.appearanceStreamContent) {\n    return formObject.appearanceStreamContent;\n  }\n\n  if (!formObject.V && !formObject.DV) {\n    return;\n  }\n\n  // else calculate it\n\n  var stream = [];\n  var text = formObject._V || formObject.DV;\n  var calcRes = calculateX(formObject, text);\n  var fontKey = formObject.scope.internal.getFont(\n    formObject.fontName,\n    formObject.fontStyle\n  ).id;\n\n  //PDF 32000-1:2008, page 444\n  stream.push(\"/Tx BMC\");\n  stream.push(\"q\");\n  stream.push(\"BT\"); // Begin Text\n  stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n  stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n  stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n  stream.push(calcRes.text);\n  stream.push(\"ET\"); // End Text\n  stream.push(\"Q\");\n  stream.push(\"EMC\");\n\n  var appearanceStreamContent = createFormXObject(formObject);\n  appearanceStreamContent.scope = formObject.scope;\n  appearanceStreamContent.stream = stream.join(\"\\n\");\n  return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n  var maxFontSize =\n    formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n  var returnValue = {\n    text: \"\",\n    fontSize: \"\"\n  };\n  // Remove Brackets\n  text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n  text =\n    text.substr(text.length - 1) == \")\"\n      ? text.substr(0, text.length - 1)\n      : text;\n  // split into array of words\n  var textSplit = text.split(\" \");\n  if (formObject.multiline) {\n    textSplit = textSplit.map(word => word.split(\"\\n\"));\n  } else {\n    textSplit = textSplit.map(word => [word]);\n  }\n\n  var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n  var lineSpacing = 2;\n  var borderPadding = 2;\n\n  var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n  height = height < 0 ? -height : height;\n  var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n  width = width < 0 ? -width : width;\n\n  var isSmallerThanWidth = function(i, lastLine, fontSize) {\n    if (i + 1 < textSplit.length) {\n      var tmp = lastLine + \" \" + textSplit[i + 1][0];\n      var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n      var FieldWidth = width - 2 * borderPadding;\n      return TextWidth <= FieldWidth;\n    } else {\n      return false;\n    }\n  };\n\n  fontSize++;\n  FontSize: while (fontSize > 0) {\n    text = \"\";\n    fontSize--;\n    var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n    var startY = formObject.multiline\n      ? height - fontSize\n      : (height - textHeight) / 2;\n    startY += lineSpacing;\n    var startX;\n\n    var lastY = startY;\n    var firstWordInLine = 0,\n      lastWordInLine = 0;\n    var lastLength;\n    var currWord = 0;\n\n    if (fontSize <= 0) {\n      // In case, the Text doesn't fit at all\n      fontSize = 12;\n      text = \"(...) Tj\\n\";\n      text +=\n        \"% Width of Text: \" +\n        calculateFontSpace(text, formObject, fontSize).width +\n        \", FieldWidth:\" +\n        width +\n        \"\\n\";\n      break;\n    }\n\n    var lastLine = \"\";\n    var lineCount = 0;\n    Line: for (var i = 0; i < textSplit.length; i++) {\n      if (textSplit.hasOwnProperty(i)) {\n        let isWithNewLine = false;\n        if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n          if (\n            (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n            height\n          ) {\n            continue FontSize;\n          }\n\n          lastLine += textSplit[i][currWord];\n          isWithNewLine = true;\n          lastWordInLine = i;\n          i--;\n        } else {\n          lastLine += textSplit[i][currWord] + \" \";\n          lastLine =\n            lastLine.substr(lastLine.length - 1) == \" \"\n              ? lastLine.substr(0, lastLine.length - 1)\n              : lastLine;\n          var key = parseInt(i);\n          var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n          var isLastWord = i >= textSplit.length - 1;\n\n          if (nextLineIsSmaller && !isLastWord) {\n            lastLine += \" \";\n            currWord = 0;\n            continue; // Line\n          } else if (!nextLineIsSmaller && !isLastWord) {\n            if (!formObject.multiline) {\n              continue FontSize;\n            } else {\n              if (\n                (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n                height\n              ) {\n                // If the Text is higher than the\n                // FieldObject\n                continue FontSize;\n              }\n              lastWordInLine = key;\n              // go on\n            }\n          } else if (isLastWord) {\n            lastWordInLine = key;\n          } else {\n            if (\n              formObject.multiline &&\n              (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n                height\n            ) {\n              // If the Text is higher than the FieldObject\n              continue FontSize;\n            }\n          }\n        }\n        // Remove last blank\n\n        var line = \"\";\n\n        for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n          var currLine = textSplit[x];\n          if (formObject.multiline) {\n            if (x === lastWordInLine) {\n              line += currLine[currWord] + \" \";\n              currWord = (currWord + 1) % currLine.length;\n              continue;\n            }\n            if (x === firstWordInLine) {\n              line += currLine[currLine.length - 1] + \" \";\n              continue;\n            }\n          }\n          line += currLine[0] + \" \";\n        }\n\n        // Remove last blank\n        line =\n          line.substr(line.length - 1) == \" \"\n            ? line.substr(0, line.length - 1)\n            : line;\n        // lastLength -= blankSpace.width;\n        lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n        // Calculate startX\n        switch (formObject.textAlign) {\n          case \"right\":\n            startX = width - lastLength - borderPadding;\n            break;\n          case \"center\":\n            startX = (width - lastLength) / 2;\n            break;\n          case \"left\":\n          default:\n            startX = borderPadding;\n            break;\n        }\n        text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n        text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n        // reset X in PDF\n        text += -f2(startX) + \" 0 Td\\n\";\n\n        // After a Line, adjust y position\n        lastY = -(fontSize + lineSpacing);\n\n        // Reset for next iteration step\n        lastLength = 0;\n        firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n        lineCount++;\n\n        lastLine = \"\";\n        continue Line;\n      }\n    }\n    break;\n  }\n\n  returnValue.text = text;\n  returnValue.fontSize = fontSize;\n\n  return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n  var font = formObject.scope.internal.getFont(\n    formObject.fontName,\n    formObject.fontStyle\n  );\n  var width =\n    formObject.scope.getStringUnitWidth(text, {\n      font: font,\n      fontSize: parseFloat(fontSize),\n      charSpace: 0\n    }) * parseFloat(fontSize);\n  var height =\n    formObject.scope.getStringUnitWidth(\"3\", {\n      font: font,\n      fontSize: parseFloat(fontSize),\n      charSpace: 0\n    }) *\n    parseFloat(fontSize) *\n    1.5;\n  return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n  fields: [],\n  xForms: [],\n  /**\n   * acroFormDictionaryRoot contains information about the AcroForm\n   * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n   * 1: The Object ID of the Root\n   */\n  acroFormDictionaryRoot: null,\n  /**\n   * After the PDF gets evaluated, the reference to the root has to be\n   * reset, this indicates, whether the root has already been printed\n   * out\n   */\n  printedOut: false,\n  internal: null,\n  isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n  //set objId to undefined and force it to get a new objId on buildDocument\n  scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n  var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n  for (var i in fields) {\n    if (fields.hasOwnProperty(i)) {\n      var formObject = fields[i];\n      //set objId to undefined and force it to get a new objId on buildDocument\n      formObject.objId = undefined;\n      // add Annot Reference!\n      if (formObject.hasAnnotation) {\n        // If theres an Annotation Widget in the Form Object, put the\n        // Reference in the /Annot array\n        createAnnotationReference(formObject, scope);\n      }\n    }\n  }\n};\n\nvar putForm = function(formObject) {\n  if (formObject.scope.internal.acroformPlugin.printedOut) {\n    formObject.scope.internal.acroformPlugin.printedOut = false;\n    formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n  }\n  formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n    formObject\n  );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n  var options = {\n    type: \"reference\",\n    object: object\n  };\n  var findEntry = function(entry) {\n    return entry.type === options.type && entry.object === options.object;\n  };\n  if (\n    scope.internal\n      .getPageInfo(object.page)\n      .pageContext.annotations.find(findEntry) === undefined\n  ) {\n    scope.internal\n      .getPageInfo(object.page)\n      .pageContext.annotations.push(options);\n  }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n  // Put reference to AcroForm to DocumentCatalog\n  if (\n    typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n  ) {\n    // for safety, shouldn't normally be the case\n    scope.internal.write(\n      \"/AcroForm \" +\n        scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n        \" \" +\n        0 +\n        \" R\"\n    );\n  } else {\n    throw new Error(\"putCatalogCallback: Root missing.\");\n  }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n  // Remove event\n  scope.internal.events.unsubscribe(\n    scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n  );\n  delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n  scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n  var standardFields = !fieldArray;\n\n  if (!fieldArray) {\n    // in case there is no fieldArray specified, we want to print out\n    // the Fields of the AcroForm\n    // Print out Root\n    scope.internal.newObjectDeferredBegin(\n      scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n      true\n    );\n    scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n  }\n\n  fieldArray =\n    fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n  for (var i in fieldArray) {\n    if (fieldArray.hasOwnProperty(i)) {\n      var fieldObject = fieldArray[i];\n      var keyValueList = [];\n      var oldRect = fieldObject.Rect;\n\n      if (fieldObject.Rect) {\n        fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n      }\n\n      // Start Writing the Object\n      scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n      fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n        fieldObject\n      );\n\n      if (\n        typeof fieldObject === \"object\" &&\n        typeof fieldObject.getKeyValueListForStream === \"function\"\n      ) {\n        keyValueList = fieldObject.getKeyValueListForStream();\n      }\n\n      fieldObject.Rect = oldRect;\n\n      if (\n        fieldObject.hasAppearanceStream &&\n        !fieldObject.appearanceStreamContent\n      ) {\n        // Calculate Appearance\n        var appearance = calculateAppearanceStream(fieldObject);\n        keyValueList.push({ key: \"AP\", value: \"<</N \" + appearance + \">>\" });\n\n        scope.internal.acroformPlugin.xForms.push(appearance);\n      }\n\n      // Assume AppearanceStreamContent is a Array with N,R,D (at least\n      // one of them!)\n      if (fieldObject.appearanceStreamContent) {\n        var appearanceStreamString = \"\";\n        // Iterate over N,R and D\n        for (var k in fieldObject.appearanceStreamContent) {\n          if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n            var value = fieldObject.appearanceStreamContent[k];\n            appearanceStreamString += \"/\" + k + \" \";\n            appearanceStreamString += \"<<\";\n            if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n              // appearanceStream is an Array or Object!\n              for (var i in value) {\n                if (value.hasOwnProperty(i)) {\n                  var obj = value[i];\n                  if (typeof obj === \"function\") {\n                    // if Function is referenced, call it in order\n                    // to get the FormXObject\n                    obj = obj.call(scope, fieldObject);\n                  }\n                  appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n                  // In case the XForm is already used, e.g. OffState\n                  // of CheckBoxes, don't add it\n                  if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n                    scope.internal.acroformPlugin.xForms.push(obj);\n                }\n              }\n            } else {\n              obj = value;\n              if (typeof obj === \"function\") {\n                // if Function is referenced, call it in order to\n                // get the FormXObject\n                obj = obj.call(scope, fieldObject);\n              }\n              appearanceStreamString += \"/\" + i + \" \" + obj;\n              if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n                scope.internal.acroformPlugin.xForms.push(obj);\n            }\n            appearanceStreamString += \">>\";\n          }\n        }\n\n        // appearance stream is a normal Object..\n        keyValueList.push({\n          key: \"AP\",\n          value: \"<<\\n\" + appearanceStreamString + \">>\"\n        });\n      }\n\n      scope.internal.putStream({\n        additionalKeyValues: keyValueList,\n        objectId: fieldObject.objId\n      });\n\n      scope.internal.out(\"endobj\");\n    }\n  }\n  if (standardFields) {\n    createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n  }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n  for (var i in fieldArray) {\n    if (fieldArray.hasOwnProperty(i)) {\n      var key = i;\n      var fieldObject = fieldArray[i];\n      // Start Writing the Object\n      scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n      if (\n        typeof fieldObject === \"object\" &&\n        typeof fieldObject.putStream === \"function\"\n      ) {\n        fieldObject.putStream();\n      }\n      delete fieldArray[key];\n    }\n  }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n  formObject.scope = scope;\n  if (\n    scope.internal !== undefined &&\n    (scope.internal.acroformPlugin === undefined ||\n      scope.internal.acroformPlugin.isInitialized === false)\n  ) {\n    AcroFormField.FieldNum = 0;\n    scope.internal.acroformPlugin = JSON.parse(\n      JSON.stringify(acroformPluginTemplate)\n    );\n    if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n      throw new Error(\"Exception while creating AcroformDictionary\");\n    }\n    scaleFactor = scope.internal.scaleFactor;\n    // The Object Number of the AcroForm Dictionary\n    scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n    scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n    // add Callback for creating the AcroForm Dictionary\n    scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n      \"postPutResources\",\n      function() {\n        AcroFormDictionaryCallback(scope);\n      }\n    );\n\n    scope.internal.events.subscribe(\"buildDocument\", function() {\n      annotReferenceCallback(scope);\n    }); // buildDocument\n\n    // Register event, that is triggered when the DocumentCatalog is\n    // written, in order to add /AcroForm\n\n    scope.internal.events.subscribe(\"putCatalog\", function() {\n      putCatalogCallback(scope);\n    });\n\n    // Register event, that creates all Fields\n    scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n      createFieldCallback(fieldArray, scope);\n    });\n\n    scope.internal.acroformPlugin.isInitialized = true;\n  }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n  array,\n  objId,\n  scope\n) {\n  var encryptor = function(data) {\n    return data;\n  };\n  if (Array.isArray(array)) {\n    var content = \"[\";\n    for (var i = 0; i < array.length; i++) {\n      if (i !== 0) {\n        content += \" \";\n      }\n      switch (typeof array[i]) {\n        case \"boolean\":\n        case \"number\":\n        case \"object\":\n          content += array[i].toString();\n          break;\n        case \"string\":\n          if (array[i].substr(0, 1) !== \"/\") {\n            if (typeof objId !== \"undefined\" && scope)\n              encryptor = scope.internal.getEncryptor(objId);\n            content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n          } else {\n            content += array[i].toString();\n          }\n          break;\n      }\n    }\n    content += \"]\";\n    return content;\n  }\n  throw new Error(\n    \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n  );\n});\nfunction getMatches(string, regex, index) {\n  index || (index = 1); // default to the first capturing group\n  var matches = [];\n  var match;\n  while ((match = regex.exec(string))) {\n    matches.push(match[index]);\n  }\n  return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n  var result = [];\n  if (typeof array === \"string\") {\n    result = getMatches(array, /\\((.*?)\\)/g);\n  }\n  return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n  var encryptor = function(data) {\n    return data;\n  };\n  if (typeof objId !== \"undefined\" && scope)\n    encryptor = scope.internal.getEncryptor(objId);\n  string = string || \"\";\n  string.toString();\n  string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n  return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n  this._objId = undefined;\n  this._scope = undefined;\n\n  /**\n   * @name AcroFormPDFObject#objId\n   * @type {any}\n   */\n  Object.defineProperty(this, \"objId\", {\n    get: function() {\n      if (typeof this._objId === \"undefined\") {\n        if (typeof this.scope === \"undefined\") {\n          return undefined;\n        }\n        this._objId = this.scope.internal.newObjectDeferred();\n      }\n      return this._objId;\n    },\n    set: function(value) {\n      this._objId = value;\n    }\n  });\n  Object.defineProperty(this, \"scope\", {\n    value: this._scope,\n    writable: true\n  });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n  return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n  var keyValueList = this.getKeyValueListForStream();\n  this.scope.internal.putStream({\n    data: this.stream,\n    additionalKeyValues: keyValueList,\n    objectId: this.objId\n  });\n  this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n  var keyValueList = [];\n  var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n    return (\n      key != \"content\" &&\n      key != \"appearanceStreamContent\" &&\n      key != \"scope\" &&\n      key != \"objId\" &&\n      key.substring(0, 1) != \"_\"\n    );\n  });\n\n  for (var i in keys) {\n    if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n      var key = keys[i];\n      var value = this[key];\n\n      if (value) {\n        if (Array.isArray(value)) {\n          keyValueList.push({\n            key: key,\n            value: arrayToPdfArray(value, this.objId, this.scope)\n          });\n        } else if (value instanceof AcroFormPDFObject) {\n          // In case it is a reference to another PDFObject,\n          // take the reference number\n          value.scope = this.scope;\n          keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n        } else if (typeof value !== \"function\") {\n          keyValueList.push({ key: key, value: value });\n        }\n      }\n    }\n  }\n  return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n  AcroFormPDFObject.call(this);\n\n  Object.defineProperty(this, \"Type\", {\n    value: \"/XObject\",\n    configurable: false,\n    writable: true\n  });\n\n  Object.defineProperty(this, \"Subtype\", {\n    value: \"/Form\",\n    configurable: false,\n    writable: true\n  });\n\n  Object.defineProperty(this, \"FormType\", {\n    value: 1,\n    configurable: false,\n    writable: true\n  });\n\n  var _BBox = [];\n  Object.defineProperty(this, \"BBox\", {\n    configurable: false,\n    get: function() {\n      return _BBox;\n    },\n    set: function(value) {\n      _BBox = value;\n    }\n  });\n\n  Object.defineProperty(this, \"Resources\", {\n    value: \"2 0 R\",\n    configurable: false,\n    writable: true\n  });\n\n  var _stream;\n  Object.defineProperty(this, \"stream\", {\n    enumerable: false,\n    configurable: true,\n    set: function(value) {\n      _stream = value.trim();\n    },\n    get: function() {\n      if (_stream) {\n        return _stream;\n      } else {\n        return null;\n      }\n    }\n  });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n  AcroFormPDFObject.call(this);\n\n  var _Kids = [];\n\n  Object.defineProperty(this, \"Kids\", {\n    enumerable: false,\n    configurable: true,\n    get: function() {\n      if (_Kids.length > 0) {\n        return _Kids;\n      } else {\n        return undefined;\n      }\n    }\n  });\n  Object.defineProperty(this, \"Fields\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _Kids;\n    }\n  });\n\n  // Default Appearance\n  var _DA;\n  Object.defineProperty(this, \"DA\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_DA) {\n        return undefined;\n      }\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n    },\n    set: function(value) {\n      _DA = value;\n    }\n  });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n  AcroFormPDFObject.call(this);\n\n  //Annotation-Flag See Table 165\n  var _F = 4;\n  Object.defineProperty(this, \"F\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _F;\n    },\n    set: function(value) {\n      if (!isNaN(value)) {\n        _F = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute F supplied.'\n        );\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n   * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n   *\n   * @name AcroFormField#showWhenPrinted\n   * @default true\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"showWhenPrinted\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(_F, 3));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.F = setBitForPdf(_F, 3);\n      } else {\n        this.F = clearBitForPdf(_F, 3);\n      }\n    }\n  });\n\n  var _Ff = 0;\n  Object.defineProperty(this, \"Ff\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _Ff;\n    },\n    set: function(value) {\n      if (!isNaN(value)) {\n        _Ff = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute Ff supplied.'\n        );\n      }\n    }\n  });\n\n  var _Rect = [];\n  Object.defineProperty(this, \"Rect\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (_Rect.length === 0) {\n        return undefined;\n      }\n      return _Rect;\n    },\n    set: function(value) {\n      if (typeof value !== \"undefined\") {\n        _Rect = value;\n      } else {\n        _Rect = [];\n      }\n    }\n  });\n\n  /**\n   * The x-position of the field.\n   *\n   * @name AcroFormField#x\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"x\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[0])) {\n        return 0;\n      }\n      return _Rect[0];\n    },\n    set: function(value) {\n      _Rect[0] = value;\n    }\n  });\n\n  /**\n   * The y-position of the field.\n   *\n   * @name AcroFormField#y\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"y\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[1])) {\n        return 0;\n      }\n      return _Rect[1];\n    },\n    set: function(value) {\n      _Rect[1] = value;\n    }\n  });\n\n  /**\n   * The width of the field.\n   *\n   * @name AcroFormField#width\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"width\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[2])) {\n        return 0;\n      }\n      return _Rect[2];\n    },\n    set: function(value) {\n      _Rect[2] = value;\n    }\n  });\n\n  /**\n   * The height of the field.\n   *\n   * @name AcroFormField#height\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"height\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[3])) {\n        return 0;\n      }\n      return _Rect[3];\n    },\n    set: function(value) {\n      _Rect[3] = value;\n    }\n  });\n\n  var _FT = \"\";\n  Object.defineProperty(this, \"FT\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _FT;\n    },\n    set: function(value) {\n      switch (value) {\n        case \"/Btn\":\n        case \"/Tx\":\n        case \"/Ch\":\n        case \"/Sig\":\n          _FT = value;\n          break;\n        default:\n          throw new Error(\n            'Invalid value \"' + value + '\" for attribute FT supplied.'\n          );\n      }\n    }\n  });\n\n  var _T = null;\n\n  Object.defineProperty(this, \"T\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (!_T || _T.length < 1) {\n        // In case of a Child from a Radio´Group, you don't need a FieldName\n        if (this instanceof AcroFormChildClass) {\n          return undefined;\n        }\n        _T = \"FieldObject\" + AcroFormField.FieldNum++;\n      }\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n    },\n    set: function(value) {\n      _T = value.toString();\n    }\n  });\n\n  /**\n   * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n   *\n   * @name AcroFormField#fieldName\n   * @default null\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fieldName\", {\n    configurable: true,\n    enumerable: true,\n    get: function() {\n      return _T;\n    },\n    set: function(value) {\n      _T = value;\n    }\n  });\n\n  var _fontName = \"helvetica\";\n  /**\n   * The fontName of the font to be used.\n   *\n   * @name AcroFormField#fontName\n   * @default 'helvetica'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fontName\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontName;\n    },\n    set: function(value) {\n      _fontName = value;\n    }\n  });\n\n  var _fontStyle = \"normal\";\n  /**\n   * The fontStyle of the font to be used.\n   *\n   * @name AcroFormField#fontStyle\n   * @default 'normal'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fontStyle\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontStyle;\n    },\n    set: function(value) {\n      _fontStyle = value;\n    }\n  });\n\n  var _fontSize = 0;\n  /**\n   * The fontSize of the font to be used.\n   *\n   * @name AcroFormField#fontSize\n   * @default 0 (for auto)\n   * @type {number}\n   */\n  Object.defineProperty(this, \"fontSize\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontSize;\n    },\n    set: function(value) {\n      _fontSize = value;\n    }\n  });\n\n  var _maxFontSize = undefined;\n  /**\n   * The maximum fontSize of the font to be used.\n   *\n   * @name AcroFormField#maxFontSize\n   * @default 0 (for auto)\n   * @type {number}\n   */\n  Object.defineProperty(this, \"maxFontSize\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (_maxFontSize === undefined) {\n        // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n        // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n        return 50 / scaleFactor;\n      } else {\n        return _maxFontSize;\n      }\n    },\n    set: function(value) {\n      _maxFontSize = value;\n    }\n  });\n\n  var _color = \"black\";\n  /**\n   * The color of the text\n   *\n   * @name AcroFormField#color\n   * @default 'black'\n   * @type {string|rgba}\n   */\n  Object.defineProperty(this, \"color\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _color;\n    },\n    set: function(value) {\n      _color = value;\n    }\n  });\n\n  var _DA = \"/F1 0 Tf 0 g\";\n  // Defines the default appearance (Needed for variable Text)\n  Object.defineProperty(this, \"DA\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (\n        !_DA ||\n        this instanceof AcroFormChildClass ||\n        this instanceof AcroFormTextField\n      ) {\n        return undefined;\n      }\n      return toPdfString(_DA, this.objId, this.scope);\n    },\n    set: function(value) {\n      value = value.toString();\n      _DA = value;\n    }\n  });\n\n  var _DV = null;\n  Object.defineProperty(this, \"DV\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_DV) {\n        return undefined;\n      }\n      if (this instanceof AcroFormButton === false) {\n        return toPdfString(_DV, this.objId, this.scope);\n      }\n      return _DV;\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === false) {\n        if (value.substr(0, 1) === \"(\") {\n          _DV = pdfUnescape(value.substr(1, value.length - 2));\n        } else {\n          _DV = pdfUnescape(value);\n        }\n      } else {\n        _DV = value;\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n   *\n   * @name AcroFormField#defaultValue\n   * @default null\n   * @type {any}\n   */\n  Object.defineProperty(this, \"defaultValue\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (this instanceof AcroFormButton === true) {\n        return pdfUnescape(_DV.substr(1, _DV.length - 1));\n      } else {\n        return _DV;\n      }\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === true) {\n        _DV = \"/\" + value;\n      } else {\n        _DV = value;\n      }\n    }\n  });\n\n  var _V = null;\n  Object.defineProperty(this, \"_V\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_V) {\n        return undefined;\n      }\n      return _V;\n    },\n    set: function(value) {\n      this.V = value;\n    }\n  });\n  Object.defineProperty(this, \"V\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_V) {\n        return undefined;\n      }\n      if (this instanceof AcroFormButton === false) {\n        return toPdfString(_V, this.objId, this.scope);\n      }\n      return _V;\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === false) {\n        if (value.substr(0, 1) === \"(\") {\n          _V = pdfUnescape(value.substr(1, value.length - 2));\n        } else {\n          _V = pdfUnescape(value);\n        }\n      } else {\n        _V = value;\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n   *\n   * @name AcroFormField#value\n   * @default null\n   * @type {any}\n   */\n  Object.defineProperty(this, \"value\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (this instanceof AcroFormButton === true) {\n        return pdfUnescape(_V.substr(1, _V.length - 1));\n      } else {\n        return _V;\n      }\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === true) {\n        _V = \"/\" + value;\n      } else {\n        _V = value;\n      }\n    }\n  });\n\n  /**\n   * Check if field has annotations\n   *\n   * @name AcroFormField#hasAnnotation\n   * @readonly\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"hasAnnotation\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return this.Rect;\n    }\n  });\n\n  Object.defineProperty(this, \"Type\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return this.hasAnnotation ? \"/Annot\" : null;\n    }\n  });\n\n  Object.defineProperty(this, \"Subtype\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return this.hasAnnotation ? \"/Widget\" : null;\n    }\n  });\n\n  var _hasAppearanceStream = false;\n  /**\n   * true if field has an appearanceStream\n   *\n   * @name AcroFormField#hasAppearanceStream\n   * @readonly\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"hasAppearanceStream\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _hasAppearanceStream;\n    },\n    set: function(value) {\n      value = Boolean(value);\n      _hasAppearanceStream = value;\n    }\n  });\n\n  /**\n   * The page on which the AcroFormField is placed\n   *\n   * @name AcroFormField#page\n   * @type {number}\n   */\n  var _page;\n  Object.defineProperty(this, \"page\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_page) {\n        return undefined;\n      }\n      return _page;\n    },\n    set: function(value) {\n      _page = value;\n    }\n  });\n\n  /**\n   * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n   *\n   * @name AcroFormField#readOnly\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"readOnly\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 1));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 1);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 1);\n      }\n    }\n  });\n\n  /**\n   * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n   *\n   * @name AcroFormField#required\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"required\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 2));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 2);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 2);\n      }\n    }\n  });\n\n  /**\n   * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n   *\n   * @name AcroFormField#noExport\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"noExport\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 3));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 3);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 3);\n      }\n    }\n  });\n\n  var _Q = null;\n  Object.defineProperty(this, \"Q\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (_Q === null) {\n        return undefined;\n      }\n      return _Q;\n    },\n    set: function(value) {\n      if ([0, 1, 2].indexOf(value) !== -1) {\n        _Q = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute Q supplied.'\n        );\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n   * 'left', 'center', 'right'\n   *\n   * @name AcroFormField#textAlign\n   * @default 'left'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"textAlign\", {\n    get: function() {\n      var result;\n      switch (_Q) {\n        case 0:\n        default:\n          result = \"left\";\n          break;\n        case 1:\n          result = \"center\";\n          break;\n        case 2:\n          result = \"right\";\n          break;\n      }\n      return result;\n    },\n    configurable: true,\n    enumerable: true,\n    set: function(value) {\n      switch (value) {\n        case \"right\":\n        case 2:\n          _Q = 2;\n          break;\n        case \"center\":\n        case 1:\n          _Q = 1;\n          break;\n        case \"left\":\n        case 0:\n        default:\n          _Q = 0;\n      }\n    }\n  });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n  AcroFormField.call(this);\n  // Field Type = Choice Field\n  this.FT = \"/Ch\";\n  // options\n  this.V = \"()\";\n\n  this.fontName = \"zapfdingbats\";\n  // Top Index\n  var _TI = 0;\n\n  Object.defineProperty(this, \"TI\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _TI;\n    },\n    set: function(value) {\n      _TI = value;\n    }\n  });\n\n  /**\n   * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n   *\n   * @name AcroFormChoiceField#topIndex\n   * @default 0\n   * @type {number}\n   */\n  Object.defineProperty(this, \"topIndex\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _TI;\n    },\n    set: function(value) {\n      _TI = value;\n    }\n  });\n\n  var _Opt = [];\n  Object.defineProperty(this, \"Opt\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return arrayToPdfArray(_Opt, this.objId, this.scope);\n    },\n    set: function(value) {\n      _Opt = pdfArrayToStringArray(value);\n    }\n  });\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name getOptions\n   * @function\n   * @instance\n   * @returns {array} array of Options\n   */\n  this.getOptions = function() {\n    return _Opt;\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name setOptions\n   * @function\n   * @instance\n   * @param {array} value\n   */\n  this.setOptions = function(value) {\n    _Opt = value;\n    if (this.sort) {\n      _Opt.sort();\n    }\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name addOption\n   * @function\n   * @instance\n   * @param {string} value\n   */\n  this.addOption = function(value) {\n    value = value || \"\";\n    value = value.toString();\n    _Opt.push(value);\n    if (this.sort) {\n      _Opt.sort();\n    }\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name removeOption\n   * @function\n   * @instance\n   * @param {string} value\n   * @param {boolean} allEntries (default: false)\n   */\n  this.removeOption = function(value, allEntries) {\n    allEntries = allEntries || false;\n    value = value || \"\";\n    value = value.toString();\n\n    while (_Opt.indexOf(value) !== -1) {\n      _Opt.splice(_Opt.indexOf(value), 1);\n      if (allEntries === false) {\n        break;\n      }\n    }\n  };\n\n  /**\n   * If set, the field is a combo box; if clear, the field is a list box.\n   *\n   * @name AcroFormChoiceField#combo\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"combo\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 18));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 18);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 18);\n      }\n    }\n  });\n\n  /**\n   * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n   *\n   * @name AcroFormChoiceField#edit\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"edit\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 19));\n    },\n    set: function(value) {\n      //PDF 32000-1:2008, page 444\n      if (this.combo === true) {\n        if (Boolean(value) === true) {\n          this.Ff = setBitForPdf(this.Ff, 19);\n        } else {\n          this.Ff = clearBitForPdf(this.Ff, 19);\n        }\n      }\n    }\n  });\n\n  /**\n   * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n   *\n   * @name AcroFormChoiceField#sort\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"sort\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 20));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 20);\n        _Opt.sort();\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 20);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n   *\n   * @name AcroFormChoiceField#multiSelect\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"multiSelect\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 22));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 22);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 22);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n   *\n   * @name AcroFormChoiceField#doNotSpellCheck\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotSpellCheck\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 23));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 23);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 23);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n   * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n   *\n   * @name AcroFormChoiceField#commitOnSelChange\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"commitOnSelChange\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 27));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 27);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 27);\n      }\n    }\n  });\n\n  this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n  AcroFormChoiceField.call(this);\n  this.fontName = \"helvetica\";\n\n  //PDF 32000-1:2008, page 444\n  this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n  AcroFormListBox.call(this);\n  this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n  AcroFormComboBox.call(this);\n  this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n  AcroFormField.call(this);\n  this.FT = \"/Btn\";\n\n  /**\n   * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n   *\n   * @name AcroFormButton#noToggleToOff\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"noToggleToOff\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 15));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 15);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 15);\n      }\n    }\n  });\n\n  /**\n   * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n   *\n   * @name AcroFormButton#radio\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"radio\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 16));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 16);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 16);\n      }\n    }\n  });\n\n  /**\n   * If set, the field is a pushbutton that does not retain a permanent value.\n   *\n   * @name AcroFormButton#pushButton\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"pushButton\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 17));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 17);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 17);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n   *\n   * @name AcroFormButton#radioIsUnison\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"radioIsUnison\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 26));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 26);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 26);\n      }\n    }\n  });\n\n  var _MK = {};\n  Object.defineProperty(this, \"MK\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      if (Object.keys(_MK).length !== 0) {\n        var result = [];\n        result.push(\"<<\");\n        var key;\n        for (key in _MK) {\n          result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n        }\n        result.push(\">>\");\n        return result.join(\"\\n\");\n      }\n      return undefined;\n    },\n    set: function(value) {\n      if (typeof value === \"object\") {\n        _MK = value;\n      }\n    }\n  });\n\n  /**\n   * From the PDF reference:\n   * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n   * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n   *\n   * - '8' = Cross,\n   * - 'l' =  Circle,\n   * - '' = nothing\n   * @name AcroFormButton#caption\n   * @type {string}\n   */\n  Object.defineProperty(this, \"caption\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MK.CA || \"\";\n    },\n    set: function(value) {\n      if (typeof value === \"string\") {\n        _MK.CA = value;\n      }\n    }\n  });\n\n  var _AS;\n  Object.defineProperty(this, \"AS\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _AS;\n    },\n    set: function(value) {\n      _AS = value;\n    }\n  });\n\n  /**\n   * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n   *\n   * @name AcroFormButton#appearanceState\n   * @type {any}\n   */\n  Object.defineProperty(this, \"appearanceState\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _AS.substr(1, _AS.length - 1);\n    },\n    set: function(value) {\n      _AS = \"/\" + value;\n    }\n  });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n  AcroFormButton.call(this);\n  this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n  AcroFormButton.call(this);\n  this.radio = true;\n  this.pushButton = false;\n\n  var _Kids = [];\n  Object.defineProperty(this, \"Kids\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _Kids;\n    },\n    set: function(value) {\n      if (typeof value !== \"undefined\") {\n        _Kids = value;\n      } else {\n        _Kids = [];\n      }\n    }\n  });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n  AcroFormField.call(this);\n\n  var _parent;\n  Object.defineProperty(this, \"Parent\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _parent;\n    },\n    set: function(value) {\n      _parent = value;\n    }\n  });\n\n  var _optionName;\n  Object.defineProperty(this, \"optionName\", {\n    enumerable: false,\n    configurable: true,\n    get: function() {\n      return _optionName;\n    },\n    set: function(value) {\n      _optionName = value;\n    }\n  });\n\n  var _MK = {};\n  Object.defineProperty(this, \"MK\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      var result = [];\n      result.push(\"<<\");\n      var key;\n      for (key in _MK) {\n        result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n      }\n      result.push(\">>\");\n      return result.join(\"\\n\");\n    },\n    set: function(value) {\n      if (typeof value === \"object\") {\n        _MK = value;\n      }\n    }\n  });\n\n  /**\n   * From the PDF reference:\n   * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n   * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n   *\n   * - '8' = Cross,\n   * - 'l' =  Circle,\n   * - '' = nothing\n   * @name AcroFormButton#caption\n   * @type {string}\n   */\n  Object.defineProperty(this, \"caption\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MK.CA || \"\";\n    },\n    set: function(value) {\n      if (typeof value === \"string\") {\n        _MK.CA = value;\n      }\n    }\n  });\n\n  var _AS;\n  Object.defineProperty(this, \"AS\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _AS;\n    },\n    set: function(value) {\n      _AS = value;\n    }\n  });\n\n  /**\n   * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n   *\n   * @name AcroFormButton#appearanceState\n   * @type {any}\n   */\n  Object.defineProperty(this, \"appearanceState\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _AS.substr(1, _AS.length - 1);\n    },\n    set: function(value) {\n      _AS = \"/\" + value;\n    }\n  });\n  this.caption = \"l\";\n  this.appearanceState = \"Off\";\n  // todo: set AppearanceType as variable that can be set from the\n  // outside...\n  this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n  // The Default appearanceType is the Circle\n  this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n    this.optionName\n  );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n  if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n    throw new Error(\n      \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n    );\n  }\n  for (var objId in this.Kids) {\n    if (this.Kids.hasOwnProperty(objId)) {\n      var child = this.Kids[objId];\n      child.appearanceStreamContent = appearance.createAppearanceStream(\n        child.optionName\n      );\n      child.caption = appearance.getCA();\n    }\n  }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n  // Create new Child for RadioGroup\n  var child = new AcroFormChildClass();\n  child.Parent = this;\n  child.optionName = name;\n  // Add to Parent\n  this.Kids.push(child);\n\n  addField.call(this.scope, child);\n\n  return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n  AcroFormButton.call(this);\n\n  this.fontName = \"zapfdingbats\";\n  this.caption = \"3\";\n  this.appearanceState = \"On\";\n  this.value = \"On\";\n  this.textAlign = \"center\";\n  this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n  AcroFormField.call(this);\n  this.FT = \"/Tx\";\n\n  /**\n   * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n   *\n   * @name AcroFormTextField#multiline\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"multiline\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 13));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 13);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 13);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n   *\n   * @name AcroFormTextField#fileSelect\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"fileSelect\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 21));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 21);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 21);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n   *\n   * @name AcroFormTextField#doNotSpellCheck\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotSpellCheck\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 23));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 23);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 23);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n   *\n   * @name AcroFormTextField#doNotScroll\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotScroll\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 24));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 24);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 24);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n   *\n   * @name AcroFormTextField#comb\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"comb\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 25));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 25);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 25);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n   *\n   * @name AcroFormTextField#richText\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"richText\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 26));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 26);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 26);\n      }\n    }\n  });\n\n  var _MaxLen = null;\n  Object.defineProperty(this, \"MaxLen\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _MaxLen;\n    },\n    set: function(value) {\n      _MaxLen = value;\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The maximum length of the field’s text, in characters.\n   *\n   * @name AcroFormTextField#maxLength\n   * @type {number}\n   */\n  Object.defineProperty(this, \"maxLength\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MaxLen;\n    },\n    set: function(value) {\n      if (Number.isInteger(value)) {\n        _MaxLen = value;\n      }\n    }\n  });\n\n  Object.defineProperty(this, \"hasAppearanceStream\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return this.V || this.DV;\n    }\n  });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n  AcroFormTextField.call(this);\n\n  /**\n   * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n   * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n   *\n   * @name AcroFormTextField#password\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"password\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 14));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 14);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 14);\n      }\n    }\n  });\n  this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n  CheckBox: {\n    createAppearanceStream: function() {\n      var appearance = {\n        N: {\n          On: AcroFormAppearance.CheckBox.YesNormal\n        },\n        D: {\n          On: AcroFormAppearance.CheckBox.YesPushDown,\n          Off: AcroFormAppearance.CheckBox.OffPushDown\n        }\n      };\n\n      return appearance;\n    },\n    /**\n     * Returns the standard On Appearance for a CheckBox\n     *\n     * @returns {AcroFormXObject}\n     */\n    YesPushDown: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var stream = [];\n      var fontKey = formObject.scope.internal.getFont(\n        formObject.fontName,\n        formObject.fontStyle\n      ).id;\n      var encodedColor = formObject.scope.__private__.encodeColorString(\n        formObject.color\n      );\n      var calcRes = calculateX(formObject, formObject.caption);\n      stream.push(\"0.749023 g\");\n      stream.push(\n        \"0 0 \" +\n          f2(AcroFormAppearance.internal.getWidth(formObject)) +\n          \" \" +\n          f2(AcroFormAppearance.internal.getHeight(formObject)) +\n          \" re\"\n      );\n      stream.push(\"f\");\n      stream.push(\"BMC\");\n      stream.push(\"q\");\n      stream.push(\"0 0 1 rg\");\n      stream.push(\n        \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n      );\n      stream.push(\"BT\");\n      stream.push(calcRes.text);\n      stream.push(\"ET\");\n      stream.push(\"Q\");\n      stream.push(\"EMC\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    },\n\n    YesNormal: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var fontKey = formObject.scope.internal.getFont(\n        formObject.fontName,\n        formObject.fontStyle\n      ).id;\n      var encodedColor = formObject.scope.__private__.encodeColorString(\n        formObject.color\n      );\n      var stream = [];\n      var height = AcroFormAppearance.internal.getHeight(formObject);\n      var width = AcroFormAppearance.internal.getWidth(formObject);\n      var calcRes = calculateX(formObject, formObject.caption);\n      stream.push(\"1 g\");\n      stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n      stream.push(\"f\");\n      stream.push(\"q\");\n      stream.push(\"0 0 1 rg\");\n      stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n      stream.push(\"W\");\n      stream.push(\"n\");\n      stream.push(\"0 g\");\n      stream.push(\"BT\");\n      stream.push(\n        \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n      );\n      stream.push(calcRes.text);\n      stream.push(\"ET\");\n      stream.push(\"Q\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    },\n\n    /**\n     * Returns the standard Off Appearance for a CheckBox\n     *\n     * @returns {AcroFormXObject}\n     */\n    OffPushDown: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var stream = [];\n      stream.push(\"0.749023 g\");\n      stream.push(\n        \"0 0 \" +\n          f2(AcroFormAppearance.internal.getWidth(formObject)) +\n          \" \" +\n          f2(AcroFormAppearance.internal.getHeight(formObject)) +\n          \" re\"\n      );\n      stream.push(\"f\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    }\n  },\n\n  RadioButton: {\n    Circle: {\n      createAppearanceStream: function(name) {\n        var appearanceStreamContent = {\n          D: {\n            Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n          },\n          N: {}\n        };\n        appearanceStreamContent.N[name] =\n          AcroFormAppearance.RadioButton.Circle.YesNormal;\n        appearanceStreamContent.D[name] =\n          AcroFormAppearance.RadioButton.Circle.YesPushDown;\n        return appearanceStreamContent;\n      },\n      getCA: function() {\n        return \"l\";\n      },\n\n      YesNormal: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        // Make the Radius of the Circle relative to min(height, width) of formObject\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        var c = AcroFormAppearance.internal.Bezier_C;\n        var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n        /*\n         * The Following is a Circle created with Bezier-Curves.\n         */\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(DotRadius + \" 0 m\");\n        stream.push(\n          DotRadius +\n            \" \" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" 0 \" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadius +\n            \" -\" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" 0 -\" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      YesPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        // Save results for later use; no need to waste\n        // processor ticks on doing math\n        var k = Number((DotRadius * 2).toFixed(5));\n        var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n        var dc = Number(\n          (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n        );\n\n        stream.push(\"0.749023 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(k + \" 0 m\");\n        stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n        stream.push(\n          \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n        );\n        stream.push(\n          \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n        );\n        stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        stream.push(\"0 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(DotRadius + \" 0 m\");\n        stream.push(\n          \"\" +\n            DotRadius +\n            \" \" +\n            dc +\n            \" \" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" 0 \" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          \"-\" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            dc +\n            \" -\" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadius +\n            \" -\" +\n            dc +\n            \" -\" +\n            dc +\n            \" -\" +\n            DotRadius +\n            \" 0 -\" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          dc +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      OffPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        // Save results for later use; no need to waste\n        // processor ticks on doing math\n        var k = Number((DotRadius * 2).toFixed(5));\n        var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n        stream.push(\"0.749023 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(k + \" 0 m\");\n        stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n        stream.push(\n          \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n        );\n        stream.push(\n          \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n        );\n        stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      }\n    },\n\n    Cross: {\n      /**\n       * Creates the Actual AppearanceDictionary-References\n       *\n       * @param {string} name\n       * @returns {Object}\n       * @ignore\n       */\n      createAppearanceStream: function(name) {\n        var appearanceStreamContent = {\n          D: {\n            Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n          },\n          N: {}\n        };\n        appearanceStreamContent.N[name] =\n          AcroFormAppearance.RadioButton.Cross.YesNormal;\n        appearanceStreamContent.D[name] =\n          AcroFormAppearance.RadioButton.Cross.YesPushDown;\n        return appearanceStreamContent;\n      },\n      getCA: function() {\n        return \"8\";\n      },\n\n      YesNormal: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var cross = AcroFormAppearance.internal.calculateCross(formObject);\n        stream.push(\"q\");\n        stream.push(\n          \"1 1 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n            \" re\"\n        );\n        stream.push(\"W\");\n        stream.push(\"n\");\n        stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n        stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n        stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n        stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n        stream.push(\"s\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      YesPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var cross = AcroFormAppearance.internal.calculateCross(formObject);\n        var stream = [];\n        stream.push(\"0.749023 g\");\n        stream.push(\n          \"0 0 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject)) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject)) +\n            \" re\"\n        );\n        stream.push(\"f\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 1 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n            \" re\"\n        );\n        stream.push(\"W\");\n        stream.push(\"n\");\n        stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n        stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n        stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n        stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n        stream.push(\"s\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      OffPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        stream.push(\"0.749023 g\");\n        stream.push(\n          \"0 0 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject)) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject)) +\n            \" re\"\n        );\n        stream.push(\"f\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      }\n    }\n  },\n\n  /**\n   * Returns the standard Appearance\n   *\n   * @returns {AcroFormXObject}\n   */\n  createDefaultAppearanceStream: function(formObject) {\n    // Set Helvetica to Standard Font (size: auto)\n    // Color: Black\n    var fontKey = formObject.scope.internal.getFont(\n      formObject.fontName,\n      formObject.fontStyle\n    ).id;\n    var encodedColor = formObject.scope.__private__.encodeColorString(\n      formObject.color\n    );\n    var fontSize = formObject.fontSize;\n    var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n    return result;\n  }\n};\n\nAcroFormAppearance.internal = {\n  Bezier_C: 0.551915024494,\n\n  calculateCross: function(formObject) {\n    var width = AcroFormAppearance.internal.getWidth(formObject);\n    var height = AcroFormAppearance.internal.getHeight(formObject);\n    var a = Math.min(width, height);\n\n    var cross = {\n      x1: {\n        // upperLeft\n        x: (width - a) / 2,\n        y: (height - a) / 2 + a // height - borderPadding\n      },\n      x2: {\n        // lowerRight\n        x: (width - a) / 2 + a,\n        y: (height - a) / 2 // borderPadding\n      },\n      x3: {\n        // lowerLeft\n        x: (width - a) / 2,\n        y: (height - a) / 2 // borderPadding\n      },\n      x4: {\n        // upperRight\n        x: (width - a) / 2 + a,\n        y: (height - a) / 2 + a // height - borderPadding\n      }\n    };\n\n    return cross;\n  }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n  var result = 0;\n  if (typeof formObject === \"object\") {\n    result = scale(formObject.Rect[2]);\n  }\n  return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n  var result = 0;\n  if (typeof formObject === \"object\") {\n    result = scale(formObject.Rect[3]);\n  }\n  return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n  initializeAcroForm(this, fieldObject);\n\n  if (fieldObject instanceof AcroFormField) {\n    putForm(fieldObject);\n  } else {\n    throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n  }\n  fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n  return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n  ChoiceField: AcroFormChoiceField,\n  ListBox: AcroFormListBox,\n  ComboBox: AcroFormComboBox,\n  EditBox: AcroFormEditBox,\n  Button: AcroFormButton,\n  PushButton: AcroFormPushButton,\n  RadioButton: AcroFormRadioButton,\n  CheckBox: AcroFormCheckBox,\n  TextField: AcroFormTextField,\n  PasswordField: AcroFormPasswordField,\n  Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n  ChoiceField: AcroFormChoiceField,\n  ListBox: AcroFormListBox,\n  ComboBox: AcroFormComboBox,\n  EditBox: AcroFormEditBox,\n  Button: AcroFormButton,\n  PushButton: AcroFormPushButton,\n  RadioButton: AcroFormRadioButton,\n  CheckBox: AcroFormCheckBox,\n  TextField: AcroFormTextField,\n  PasswordField: AcroFormPasswordField,\n  Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n  AcroForm,\n  AcroFormChoiceField,\n  AcroFormListBox,\n  AcroFormComboBox,\n  AcroFormEditBox,\n  AcroFormButton,\n  AcroFormPushButton,\n  AcroFormRadioButton,\n  AcroFormCheckBox,\n  AcroFormTextField,\n  AcroFormPasswordField,\n  AcroFormAppearance\n};\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n *               2013 Chris Dowling, https://github.com/gingerchris\n *               2013 Trinh Ho, https://github.com/ineedfat\n *               2013 Edwin Alejandro Perez, https://github.com/eaparango\n *               2013 Norah Smith, https://github.com/burnburnrocket\n *               2014 Diego Casorran, https://github.com/diegocr\n *               2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var namespace = \"addImage_\";\n  jsPDFAPI.__addimage__ = {};\n\n  var UNKNOWN = \"UNKNOWN\";\n\n  // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n  // With too small batch iteration will be slow as more calls are made,\n  // higher values cause larger and slower garbage collection.\n  var ARRAY_APPLY_BATCH = 8192;\n\n  var imageFileTypeHeaders = {\n    PNG: [[0x89, 0x50, 0x4e, 0x47]],\n    TIFF: [\n      [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n      [0x49, 0x49, 0x2a, 0x00] //Intel\n    ],\n    JPEG: [\n      [\n        0xff,\n        0xd8,\n        0xff,\n        0xe0,\n        undefined,\n        undefined,\n        0x4a,\n        0x46,\n        0x49,\n        0x46,\n        0x00\n      ], //JFIF\n      [\n        0xff,\n        0xd8,\n        0xff,\n        0xe1,\n        undefined,\n        undefined,\n        0x45,\n        0x78,\n        0x69,\n        0x66,\n        0x00,\n        0x00\n      ], //Exif\n      [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n      [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n    ],\n    JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n    GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n    GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n    WEBP: [\n      [\n        0x52,\n        0x49,\n        0x46,\n        0x46,\n        undefined,\n        undefined,\n        undefined,\n        undefined,\n        0x57,\n        0x45,\n        0x42,\n        0x50\n      ]\n    ],\n    BMP: [\n      [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n      [0x42, 0x41], //BA - OS/2 struct bitmap array\n      [0x43, 0x49], //CI - OS/2 struct color icon\n      [0x43, 0x50], //CP - OS/2 const color pointer\n      [0x49, 0x43], //IC - OS/2 struct icon\n      [0x50, 0x54] //PT - OS/2 pointer\n    ]\n  };\n\n  /**\n   * Recognize filetype of Image by magic-bytes\n   *\n   * https://en.wikipedia.org/wiki/List_of_file_signatures\n   *\n   * @name getImageFileTypeByImageData\n   * @public\n   * @function\n   * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n   * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n   *\n   * @returns {string} filetype of Image\n   */\n  var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n    imageData,\n    fallbackFormat\n  ) {\n    fallbackFormat = fallbackFormat || UNKNOWN;\n    var i;\n    var j;\n    var result = UNKNOWN;\n    var headerSchemata;\n    var compareResult;\n    var fileType;\n\n    if (\n      fallbackFormat === \"RGBA\" ||\n      (imageData.data !== undefined &&\n        imageData.data instanceof Uint8ClampedArray &&\n        \"height\" in imageData &&\n        \"width\" in imageData)\n    ) {\n      return \"RGBA\";\n    }\n\n    if (isArrayBufferView(imageData)) {\n      for (fileType in imageFileTypeHeaders) {\n        headerSchemata = imageFileTypeHeaders[fileType];\n        for (i = 0; i < headerSchemata.length; i += 1) {\n          compareResult = true;\n          for (j = 0; j < headerSchemata[i].length; j += 1) {\n            if (headerSchemata[i][j] === undefined) {\n              continue;\n            }\n            if (headerSchemata[i][j] !== imageData[j]) {\n              compareResult = false;\n              break;\n            }\n          }\n          if (compareResult === true) {\n            result = fileType;\n            break;\n          }\n        }\n      }\n    } else {\n      for (fileType in imageFileTypeHeaders) {\n        headerSchemata = imageFileTypeHeaders[fileType];\n        for (i = 0; i < headerSchemata.length; i += 1) {\n          compareResult = true;\n          for (j = 0; j < headerSchemata[i].length; j += 1) {\n            if (headerSchemata[i][j] === undefined) {\n              continue;\n            }\n            if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n              compareResult = false;\n              break;\n            }\n          }\n          if (compareResult === true) {\n            result = fileType;\n            break;\n          }\n        }\n      }\n    }\n\n    if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n      result = fallbackFormat;\n    }\n    return result;\n  });\n\n  // Image functionality ported from pdf.js\n  var putImage = function(image) {\n    var out = this.internal.write;\n    var putStream = this.internal.putStream;\n    var getFilters = this.internal.getFilters;\n\n    var filter = getFilters();\n    while (filter.indexOf(\"FlateEncode\") !== -1) {\n      filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n    }\n\n    image.objectId = this.internal.newObject();\n\n    var additionalKeyValues = [];\n    additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n    additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n    additionalKeyValues.push({ key: \"Width\", value: image.width });\n    additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n    if (image.colorSpace === color_spaces.INDEXED) {\n      additionalKeyValues.push({\n        key: \"ColorSpace\",\n        value:\n          \"[/Indexed /DeviceRGB \" +\n          // if an indexed png defines more than one colour with transparency, we've created a sMask\n          (image.palette.length / 3 - 1) +\n          \" \" +\n          (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n            ? image.objectId + 2\n            : image.objectId + 1) +\n          \" 0 R]\"\n      });\n    } else {\n      additionalKeyValues.push({\n        key: \"ColorSpace\",\n        value: \"/\" + image.colorSpace\n      });\n      if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n        additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n      }\n    }\n    additionalKeyValues.push({\n      key: \"BitsPerComponent\",\n      value: image.bitsPerComponent\n    });\n    if (\n      \"decodeParameters\" in image &&\n      typeof image.decodeParameters !== \"undefined\"\n    ) {\n      additionalKeyValues.push({\n        key: \"DecodeParms\",\n        value: \"<<\" + image.decodeParameters + \">>\"\n      });\n    }\n    if (\"transparency\" in image && Array.isArray(image.transparency)) {\n      var transparency = \"\",\n        i = 0,\n        len = image.transparency.length;\n      for (; i < len; i++)\n        transparency +=\n          image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n      additionalKeyValues.push({\n        key: \"Mask\",\n        value: \"[\" + transparency + \"]\"\n      });\n    }\n    if (typeof image.sMask !== \"undefined\") {\n      additionalKeyValues.push({\n        key: \"SMask\",\n        value: image.objectId + 1 + \" 0 R\"\n      });\n    }\n\n    var alreadyAppliedFilters =\n      typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n    putStream({\n      data: image.data,\n      additionalKeyValues: additionalKeyValues,\n      alreadyAppliedFilters: alreadyAppliedFilters,\n      objectId: image.objectId\n    });\n\n    out(\"endobj\");\n\n    // Soft mask\n    if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n      var decodeParameters =\n        \"/Predictor \" +\n        image.predictor +\n        \" /Colors 1 /BitsPerComponent \" +\n        image.bitsPerComponent +\n        \" /Columns \" +\n        image.width;\n      var sMask = {\n        width: image.width,\n        height: image.height,\n        colorSpace: \"DeviceGray\",\n        bitsPerComponent: image.bitsPerComponent,\n        decodeParameters: decodeParameters,\n        data: image.sMask\n      };\n      if (\"filter\" in image) {\n        sMask.filter = image.filter;\n      }\n      putImage.call(this, sMask);\n    }\n\n    //Palette\n    if (image.colorSpace === color_spaces.INDEXED) {\n      var objId = this.internal.newObject();\n      //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n      //putStream(zlib.compress(img['pal']));\n      putStream({\n        data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n        objectId: objId\n      });\n      out(\"endobj\");\n    }\n  };\n  var putResourcesCallback = function() {\n    var images = this.internal.collections[namespace + \"images\"];\n    for (var i in images) {\n      putImage.call(this, images[i]);\n    }\n  };\n  var putXObjectsDictCallback = function() {\n    var images = this.internal.collections[namespace + \"images\"],\n      out = this.internal.write,\n      image;\n    for (var i in images) {\n      image = images[i];\n      out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n    }\n  };\n\n  var checkCompressValue = function(value) {\n    if (value && typeof value === \"string\") value = value.toUpperCase();\n    return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n  };\n\n  var initialize = function() {\n    if (!this.internal.collections[namespace + \"images\"]) {\n      this.internal.collections[namespace + \"images\"] = {};\n      this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n      this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n    }\n  };\n\n  var getImages = function() {\n    var images = this.internal.collections[namespace + \"images\"];\n    initialize.call(this);\n    return images;\n  };\n  var getImageIndex = function() {\n    return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n  };\n  var notDefined = function(value) {\n    return typeof value === \"undefined\" || value === null || value.length === 0;\n  };\n  var generateAliasFromImageData = function(imageData) {\n    if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n      return sHashCode(imageData);\n    } else if (isArrayBufferView(imageData.data)) {\n      return sHashCode(imageData.data);\n    }\n\n    return null;\n  };\n\n  var isImageTypeSupported = function(type) {\n    return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n  };\n\n  var isDOMElement = function(object) {\n    return typeof object === \"object\" && object.nodeType === 1;\n  };\n\n  var getImageDataFromElement = function(element, format) {\n    //if element is an image which uses data url definition, just return the dataurl\n    if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n      var src = \"\" + element.getAttribute(\"src\");\n\n      //is base64 encoded dataUrl, directly process it\n      if (src.indexOf(\"data:image/\") === 0) {\n        return atob(\n          unescape(src)\n            .split(\"base64,\")\n            .pop()\n        );\n      }\n\n      //it is probably an url, try to load it\n      var tmpImageData = jsPDFAPI.loadFile(src, true);\n      if (tmpImageData !== undefined) {\n        return tmpImageData;\n      }\n    }\n\n    if (element.nodeName === \"CANVAS\") {\n      if (element.width === 0 || element.height === 0) {\n        throw new Error(\n          \"Given canvas must have data. Canvas width: \" +\n            element.width +\n            \", height: \" +\n            element.height\n        );\n      }\n      var mimeType;\n      switch (format) {\n        case \"PNG\":\n          mimeType = \"image/png\";\n          break;\n        case \"WEBP\":\n          mimeType = \"image/webp\";\n          break;\n        case \"JPEG\":\n        case \"JPG\":\n        default:\n          mimeType = \"image/jpeg\";\n          break;\n      }\n      return atob(\n        element\n          .toDataURL(mimeType, 1.0)\n          .split(\"base64,\")\n          .pop()\n      );\n    }\n  };\n\n  var checkImagesForAlias = function(alias) {\n    var images = this.internal.collections[namespace + \"images\"];\n    if (images) {\n      for (var e in images) {\n        if (alias === images[e].alias) {\n          return images[e];\n        }\n      }\n    }\n  };\n\n  var determineWidthAndHeight = function(width, height, image) {\n    if (!width && !height) {\n      width = -96;\n      height = -96;\n    }\n    if (width < 0) {\n      width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n    }\n    if (height < 0) {\n      height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n    }\n    if (width === 0) {\n      width = (height * image.width) / image.height;\n    }\n    if (height === 0) {\n      height = (width * image.height) / image.width;\n    }\n\n    return [width, height];\n  };\n\n  var writeImageToPDF = function(x, y, width, height, image, rotation) {\n    var dims = determineWidthAndHeight.call(this, width, height, image),\n      coord = this.internal.getCoordinateString,\n      vcoord = this.internal.getVerticalCoordinateString;\n\n    var images = getImages.call(this);\n\n    width = dims[0];\n    height = dims[1];\n    images[image.index] = image;\n\n    if (rotation) {\n      rotation *= Math.PI / 180;\n      var c = Math.cos(rotation);\n      var s = Math.sin(rotation);\n      //like in pdf Reference do it 4 digits instead of 2\n      var f4 = function(number) {\n        return number.toFixed(4);\n      };\n      var rotationTransformationMatrix = [\n        f4(c),\n        f4(s),\n        f4(s * -1),\n        f4(c),\n        0,\n        0,\n        \"cm\"\n      ];\n    }\n    this.internal.write(\"q\"); //Save graphics state\n    if (rotation) {\n      this.internal.write(\n        [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n      ); //Translate\n      this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n      this.internal.write(\n        [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n      ); //Scale\n    } else {\n      this.internal.write(\n        [\n          coord(width),\n          \"0\",\n          \"0\",\n          coord(height),\n          coord(x),\n          vcoord(y + height),\n          \"cm\"\n        ].join(\" \")\n      ); //Translate and Scale\n    }\n\n    if (this.isAdvancedAPI()) {\n      // draw image bottom up when in \"advanced\" API mode\n      this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n    }\n\n    this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n    this.internal.write(\"Q\"); //Restore graphics state\n  };\n\n  /**\n   * COLOR SPACES\n   */\n  var color_spaces = (jsPDFAPI.color_spaces = {\n    DEVICE_RGB: \"DeviceRGB\",\n    DEVICE_GRAY: \"DeviceGray\",\n    DEVICE_CMYK: \"DeviceCMYK\",\n    CAL_GREY: \"CalGray\",\n    CAL_RGB: \"CalRGB\",\n    LAB: \"Lab\",\n    ICC_BASED: \"ICCBased\",\n    INDEXED: \"Indexed\",\n    PATTERN: \"Pattern\",\n    SEPARATION: \"Separation\",\n    DEVICE_N: \"DeviceN\"\n  });\n\n  /**\n   * DECODE METHODS\n   */\n  jsPDFAPI.decode = {\n    DCT_DECODE: \"DCTDecode\",\n    FLATE_DECODE: \"FlateDecode\",\n    LZW_DECODE: \"LZWDecode\",\n    JPX_DECODE: \"JPXDecode\",\n    JBIG2_DECODE: \"JBIG2Decode\",\n    ASCII85_DECODE: \"ASCII85Decode\",\n    ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n    RUN_LENGTH_DECODE: \"RunLengthDecode\",\n    CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n  };\n\n  /**\n   * IMAGE COMPRESSION TYPES\n   */\n  var image_compression = (jsPDFAPI.image_compression = {\n    NONE: \"NONE\",\n    FAST: \"FAST\",\n    MEDIUM: \"MEDIUM\",\n    SLOW: \"SLOW\"\n  });\n\n  /**\n   * @name sHashCode\n   * @function\n   * @param {string} data\n   * @returns {string}\n   */\n  var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n    var hash = 0,\n      i,\n      len;\n\n    if (typeof data === \"string\") {\n      len = data.length;\n      for (i = 0; i < len; i++) {\n        hash = (hash << 5) - hash + data.charCodeAt(i);\n        hash |= 0; // Convert to 32bit integer\n      }\n    } else if (isArrayBufferView(data)) {\n      len = data.byteLength / 2;\n      for (i = 0; i < len; i++) {\n        hash = (hash << 5) - hash + data[i];\n        hash |= 0; // Convert to 32bit integer\n      }\n    }\n    return hash;\n  });\n\n  /**\n   * Validates if given String is a valid Base64-String\n   *\n   * @name validateStringAsBase64\n   * @public\n   * @function\n   * @param {String} possible Base64-String\n   *\n   * @returns {boolean}\n   */\n  var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n    possibleBase64String\n  ) {\n    possibleBase64String = possibleBase64String || \"\";\n    possibleBase64String.toString().trim();\n\n    var result = true;\n\n    if (possibleBase64String.length === 0) {\n      result = false;\n    }\n\n    if (possibleBase64String.length % 4 !== 0) {\n      result = false;\n    }\n\n    if (\n      /^[A-Za-z0-9+/]+$/.test(\n        possibleBase64String.substr(0, possibleBase64String.length - 2)\n      ) === false\n    ) {\n      result = false;\n    }\n\n    if (\n      /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n        possibleBase64String.substr(-2)\n      ) === false\n    ) {\n      result = false;\n    }\n    return result;\n  });\n\n  /**\n   * Strips out and returns info from a valid base64 data URI\n   *\n   * @name extractImageFromDataUrl\n   * @function\n   * @param {string} dataUrl a valid data URI of format 'data:[<MIME-type>][;base64],<data>'\n   * @returns {Array}an Array containing the following\n   * [0] the complete data URI\n   * [1] <MIME-type>\n   * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n   * [4] <data>\n   */\n  var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n    dataUrl\n  ) {\n    dataUrl = dataUrl || \"\";\n    var dataUrlParts = dataUrl.split(\"base64,\");\n    var result = null;\n\n    if (dataUrlParts.length === 2) {\n      var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n        dataUrlParts[0]\n      );\n      if (Array.isArray(extractedInfo)) {\n        result = {\n          mimeType: extractedInfo[1],\n          charset: extractedInfo[2],\n          data: dataUrlParts[1]\n        };\n      }\n    }\n    return result;\n  });\n\n  /**\n   * Check to see if ArrayBuffer is supported\n   *\n   * @name supportsArrayBuffer\n   * @function\n   * @returns {boolean}\n   */\n  var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n    return (\n      typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n    );\n  });\n\n  /**\n   * Tests supplied object to determine if ArrayBuffer\n   *\n   * @name isArrayBuffer\n   * @function\n   * @param {Object} object an Object\n   *\n   * @returns {boolean}\n   */\n  jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n    return supportsArrayBuffer() && object instanceof ArrayBuffer;\n  };\n\n  /**\n   * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n   *\n   * @name isArrayBufferView\n   * @function\n   * @param {Object} object an Object\n   * @returns {boolean}\n   */\n  var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n    object\n  ) {\n    return (\n      supportsArrayBuffer() &&\n      typeof Uint32Array !== \"undefined\" &&\n      (object instanceof Int8Array ||\n        object instanceof Uint8Array ||\n        (typeof Uint8ClampedArray !== \"undefined\" &&\n          object instanceof Uint8ClampedArray) ||\n        object instanceof Int16Array ||\n        object instanceof Uint16Array ||\n        object instanceof Int32Array ||\n        object instanceof Uint32Array ||\n        object instanceof Float32Array ||\n        object instanceof Float64Array)\n    );\n  });\n\n  /**\n   * Convert Binary String to ArrayBuffer\n   *\n   * @name binaryStringToUint8Array\n   * @public\n   * @function\n   * @param {string} BinaryString with ImageData\n   * @returns {Uint8Array}\n   */\n  var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n    binary_string\n  ) {\n    var len = binary_string.length;\n    var bytes = new Uint8Array(len);\n    for (var i = 0; i < len; i++) {\n      bytes[i] = binary_string.charCodeAt(i);\n    }\n    return bytes;\n  });\n\n  /**\n   * Convert the Buffer to a Binary String\n   *\n   * @name arrayBufferToBinaryString\n   * @public\n   * @function\n   * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n   *\n   * @returns {String}\n   */\n  var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n    buffer\n  ) {\n    var out = \"\";\n    // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n    // Do not copy the array if input is already an array.\n    var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n    for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n      // Limit the amount of characters being parsed to prevent overflow.\n      // Note that while TextDecoder would be faster, it does not have the same\n      // functionality as fromCharCode with any provided encodings as of 3/2021.\n      out += String.fromCharCode.apply(\n        null,\n        buf.subarray(i, i + ARRAY_APPLY_BATCH)\n      );\n    }\n    return out;\n  });\n\n  /**\n   * Possible parameter for addImage, an RGBA buffer with size.\n   *\n   * @typedef {Object} RGBAData\n   * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n   * @property {number} width - Image width as the data does not carry this information in itself.\n   * @property {number} height - Image height as the data does not carry this information in itself.\n   */\n\n  /**\n   * Adds an Image to the PDF.\n   *\n   * @name addImage\n   * @public\n   * @function\n   * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n   * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n   * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} width width of the image (in units declared at inception of PDF document)\n   * @param {number} height height of the Image (in units declared at inception of PDF document)\n   * @param {string} alias alias of the image (if used multiple times)\n   * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n   * @param {number} rotation rotation of the image in degrees (0-359)\n   *\n   * @returns jsPDF\n   */\n  jsPDFAPI.addImage = function() {\n    var imageData, format, x, y, w, h, alias, compression, rotation;\n\n    imageData = arguments[0];\n    if (typeof arguments[1] === \"number\") {\n      format = UNKNOWN;\n      x = arguments[1];\n      y = arguments[2];\n      w = arguments[3];\n      h = arguments[4];\n      alias = arguments[5];\n      compression = arguments[6];\n      rotation = arguments[7];\n    } else {\n      format = arguments[1];\n      x = arguments[2];\n      y = arguments[3];\n      w = arguments[4];\n      h = arguments[5];\n      alias = arguments[6];\n      compression = arguments[7];\n      rotation = arguments[8];\n    }\n\n    if (\n      typeof imageData === \"object\" &&\n      !isDOMElement(imageData) &&\n      \"imageData\" in imageData\n    ) {\n      var options = imageData;\n\n      imageData = options.imageData;\n      format = options.format || format || UNKNOWN;\n      x = options.x || x || 0;\n      y = options.y || y || 0;\n      w = options.w || options.width || w;\n      h = options.h || options.height || h;\n      alias = options.alias || alias;\n      compression = options.compression || compression;\n      rotation = options.rotation || options.angle || rotation;\n    }\n\n    //If compression is not explicitly set, determine if we should use compression\n    var filter = this.internal.getFilters();\n    if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n      compression = \"SLOW\";\n    }\n\n    if (isNaN(x) || isNaN(y)) {\n      throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n    }\n\n    initialize.call(this);\n\n    var image = processImageData.call(\n      this,\n      imageData,\n      format,\n      alias,\n      compression\n    );\n\n    writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n    return this;\n  };\n\n  var processImageData = function(imageData, format, alias, compression) {\n    var result, dataAsBinaryString;\n\n    if (\n      typeof imageData === \"string\" &&\n      getImageFileTypeByImageData(imageData) === UNKNOWN\n    ) {\n      imageData = unescape(imageData);\n      var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n      if (tmpImageData !== \"\") {\n        imageData = tmpImageData;\n      } else {\n        tmpImageData = jsPDFAPI.loadFile(imageData, true);\n        if (tmpImageData !== undefined) {\n          imageData = tmpImageData;\n        }\n      }\n    }\n\n    if (isDOMElement(imageData)) {\n      imageData = getImageDataFromElement(imageData, format);\n    }\n\n    format = getImageFileTypeByImageData(imageData, format);\n    if (!isImageTypeSupported(format)) {\n      throw new Error(\n        \"addImage does not support files of type '\" +\n          format +\n          \"', please ensure that a plugin for '\" +\n          format +\n          \"' support is added.\"\n      );\n    }\n\n    // now do the heavy lifting\n\n    if (notDefined(alias)) {\n      alias = generateAliasFromImageData(imageData);\n    }\n    result = checkImagesForAlias.call(this, alias);\n\n    if (!result) {\n      if (supportsArrayBuffer()) {\n        // no need to convert if imageData is already uint8array\n        if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n          dataAsBinaryString = imageData;\n          imageData = binaryStringToUint8Array(imageData);\n        }\n      }\n\n      result = this[\"process\" + format.toUpperCase()](\n        imageData,\n        getImageIndex.call(this),\n        alias,\n        checkCompressValue(compression),\n        dataAsBinaryString\n      );\n    }\n\n    if (!result) {\n      throw new Error(\"An unknown error occurred whilst processing the image.\");\n    }\n    return result;\n  };\n\n  /**\n   * @name convertBase64ToBinaryString\n   * @function\n   * @param {string} stringData\n   * @returns {string} binary string\n   */\n  var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n    stringData,\n    throwError\n  ) {\n    throwError = typeof throwError === \"boolean\" ? throwError : true;\n    var base64Info;\n    var imageData = \"\";\n    var rawData;\n\n    if (typeof stringData === \"string\") {\n      base64Info = extractImageFromDataUrl(stringData);\n      rawData = base64Info !== null ? base64Info.data : stringData;\n\n      try {\n        imageData = atob(rawData);\n      } catch (e) {\n        if (throwError) {\n          if (!validateStringAsBase64(rawData)) {\n            throw new Error(\n              \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n            );\n          } else {\n            throw new Error(\n              \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n            );\n          }\n        }\n      }\n    }\n    return imageData;\n  });\n\n  /**\n   * @name getImageProperties\n   * @function\n   * @param {Object} imageData\n   * @returns {Object}\n   */\n  jsPDFAPI.getImageProperties = function(imageData) {\n    var image;\n    var tmpImageData = \"\";\n    var format;\n\n    if (isDOMElement(imageData)) {\n      imageData = getImageDataFromElement(imageData);\n    }\n\n    if (\n      typeof imageData === \"string\" &&\n      getImageFileTypeByImageData(imageData) === UNKNOWN\n    ) {\n      tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n      if (tmpImageData === \"\") {\n        tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n      }\n      imageData = tmpImageData;\n    }\n\n    format = getImageFileTypeByImageData(imageData);\n    if (!isImageTypeSupported(format)) {\n      throw new Error(\n        \"addImage does not support files of type '\" +\n          format +\n          \"', please ensure that a plugin for '\" +\n          format +\n          \"' support is added.\"\n      );\n    }\n\n    if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n      imageData = binaryStringToUint8Array(imageData);\n    }\n\n    image = this[\"process\" + format.toUpperCase()](imageData);\n\n    if (!image) {\n      throw new Error(\"An unknown error occurred whilst processing the image\");\n    }\n\n    image.fileType = format;\n\n    return image;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n * <br />\n * This plugin current supports <br />\n * <li> Goto Page (set pageNumber and top in options)\n * <li> Goto Name (set name and top in options)\n * <li> Goto URL (set url in options)\n * <p>\n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n *  (set magFactor in options).  XYZ is the default.\n * </p>\n * <p>\n *  Links, Text, Popup, and FreeText are supported.\n * </p>\n * <p>\n * Options In PDF spec Not Implemented Yet\n * <li> link border\n * <li> named target\n * <li> page coordinates\n * <li> destination page scaling and layout\n * <li> actions other than URL and GotoPage\n * <li> background / hover actions\n * </p>\n * @name annotations\n * @module\n */\n\n/*\n    Destination Magnification Factors\n    See PDF 1.3 Page 386 for meanings and options\n\n    [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var notEmpty = function(obj) {\n    if (typeof obj != \"undefined\") {\n      if (obj != \"\") {\n        return true;\n      }\n    }\n  };\n\n  jsPDF.API.events.push([\n    \"addPage\",\n    function(addPageData) {\n      var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n      pageInfo.pageContext.annotations = [];\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"putPage\",\n    function(putPageData) {\n      var getHorizontalCoordinateString = this.internal.getCoordinateString;\n      var getVerticalCoordinateString = this.internal\n        .getVerticalCoordinateString;\n      var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n      var pageAnnos = putPageData.pageContext.annotations;\n\n      var anno, rect, line;\n      var found = false;\n      for (var a = 0; a < pageAnnos.length && !found; a++) {\n        anno = pageAnnos[a];\n        switch (anno.type) {\n          case \"link\":\n            if (\n              notEmpty(anno.options.url) ||\n              notEmpty(anno.options.pageNumber)\n            ) {\n              found = true;\n            }\n            break;\n          case \"reference\":\n          case \"text\":\n          case \"freetext\":\n            found = true;\n            break;\n        }\n      }\n      if (found == false) {\n        return;\n      }\n\n      this.internal.write(\"/Annots [\");\n      for (var i = 0; i < pageAnnos.length; i++) {\n        anno = pageAnnos[i];\n        var escape = this.internal.pdfEscape;\n        var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n        switch (anno.type) {\n          case \"reference\":\n            // References to Widget Annotations (for AcroForm Fields)\n            this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n            break;\n          case \"text\":\n            // Create a an object for both the text and the popup\n            var objText = this.internal.newAdditionalObject();\n            var objPopup = this.internal.newAdditionalObject();\n            var encryptorText = this.internal.getEncryptor(objText.objId);\n\n            var title = anno.title || \"Note\";\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \" \" +\n              getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \"] \";\n\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"Text\" +\n              \" \" +\n              rect +\n              \"/Contents (\" +\n              escape(encryptorText(anno.contents)) +\n              \")\";\n            line += \" /Popup \" + objPopup.objId + \" 0 R\";\n            line += \" /P \" + pageInfo.objId + \" 0 R\";\n            line += \" /T (\" + escape(encryptorText(title)) + \") >>\";\n            objText.content = line;\n\n            var parent = objText.objId + \" 0 R\";\n            var popoff = 30;\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x + popoff) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \" \" +\n              getHorizontalCoordinateString(\n                anno.bounds.x + anno.bounds.w + popoff\n              ) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \"] \";\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"Popup\" +\n              \" \" +\n              rect +\n              \" /Parent \" +\n              parent;\n            if (anno.open) {\n              line += \" /Open true\";\n            }\n            line += \" >>\";\n            objPopup.content = line;\n\n            this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n            break;\n          case \"freetext\":\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \" \" +\n              getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \"] \";\n            var color = anno.color || \"#000000\";\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"FreeText\" +\n              \" \" +\n              rect +\n              \"/Contents (\" +\n              escape(encryptor(anno.contents)) +\n              \")\";\n            line +=\n              \" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\" +\n              color +\n              \")\";\n            line += \" /Border [0 0 0]\";\n            line += \" >>\";\n            this.internal.write(line);\n            break;\n          case \"link\":\n            if (anno.options.name) {\n              var loc = this.annotations._nameMap[anno.options.name];\n              anno.options.pageNumber = loc.page;\n              anno.options.top = loc.y;\n            } else {\n              if (!anno.options.top) {\n                anno.options.top = 0;\n              }\n            }\n\n            rect =\n              \"/Rect [\" +\n              anno.finalBounds.x +\n              \" \" +\n              anno.finalBounds.y +\n              \" \" +\n              anno.finalBounds.w +\n              \" \" +\n              anno.finalBounds.h +\n              \"] \";\n\n            line = \"\";\n            if (anno.options.url) {\n              line =\n                \"<</Type /Annot /Subtype /Link \" +\n                rect +\n                \"/Border [0 0 0] /A <</S /URI /URI (\" +\n                escape(encryptor(anno.options.url)) +\n                \") >>\";\n            } else if (anno.options.pageNumber) {\n              // first page is 0\n              var info = this.internal.getPageInfo(anno.options.pageNumber);\n              line =\n                \"<</Type /Annot /Subtype /Link \" +\n                rect +\n                \"/Border [0 0 0] /Dest [\" +\n                info.objId +\n                \" 0 R\";\n              anno.options.magFactor = anno.options.magFactor || \"XYZ\";\n              switch (anno.options.magFactor) {\n                case \"Fit\":\n                  line += \" /Fit]\";\n                  break;\n                case \"FitH\":\n                  line += \" /FitH \" + anno.options.top + \"]\";\n                  break;\n                case \"FitV\":\n                  anno.options.left = anno.options.left || 0;\n                  line += \" /FitV \" + anno.options.left + \"]\";\n                  break;\n                case \"XYZ\":\n                default:\n                  var top = getVerticalCoordinateString(anno.options.top);\n                  anno.options.left = anno.options.left || 0;\n                  // 0 or null zoom will not change zoom factor\n                  if (typeof anno.options.zoom === \"undefined\") {\n                    anno.options.zoom = 0;\n                  }\n                  line +=\n                    \" /XYZ \" +\n                    anno.options.left +\n                    \" \" +\n                    top +\n                    \" \" +\n                    anno.options.zoom +\n                    \"]\";\n                  break;\n              }\n            }\n\n            if (line != \"\") {\n              line += \" >>\";\n              this.internal.write(line);\n            }\n            break;\n        }\n      }\n      this.internal.write(\"]\");\n    }\n  ]);\n\n  /**\n   * @name createAnnotation\n   * @function\n   * @param {Object} options\n   */\n  jsPDFAPI.createAnnotation = function(options) {\n    var pageInfo = this.internal.getCurrentPageInfo();\n    switch (options.type) {\n      case \"link\":\n        this.link(\n          options.bounds.x,\n          options.bounds.y,\n          options.bounds.w,\n          options.bounds.h,\n          options\n        );\n        break;\n      case \"text\":\n      case \"freetext\":\n        pageInfo.pageContext.annotations.push(options);\n        break;\n    }\n  };\n\n  /**\n   * Create a link\n   *\n   * valid options\n   * <li> pageNumber or url [required]\n   * <p>If pageNumber is specified, top and zoom may also be specified</p>\n   * @name link\n   * @function\n   * @param {number} x\n   * @param {number} y\n   * @param {number} w\n   * @param {number} h\n   * @param {Object} options\n   */\n  jsPDFAPI.link = function(x, y, w, h, options) {\n    var pageInfo = this.internal.getCurrentPageInfo();\n    var getHorizontalCoordinateString = this.internal.getCoordinateString;\n    var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n    pageInfo.pageContext.annotations.push({\n      finalBounds: {\n        x: getHorizontalCoordinateString(x),\n        y: getVerticalCoordinateString(y),\n        w: getHorizontalCoordinateString(x + w),\n        h: getVerticalCoordinateString(y + h)\n      },\n      options: options,\n      type: \"link\"\n    });\n  };\n\n  /**\n   * Currently only supports single line text.\n   * Returns the width of the text/link\n   *\n   * @name textWithLink\n   * @function\n   * @param {string} text\n   * @param {number} x\n   * @param {number} y\n   * @param {Object} options\n   * @returns {number} width the width of the text/link\n   */\n  jsPDFAPI.textWithLink = function(text, x, y, options) {\n    var totalLineWidth = this.getTextWidth(text);\n    var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n    var linkHeight, linkWidth;\n\n    // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n    if (options.maxWidth !== undefined) {\n      var { maxWidth } = options;\n      linkWidth = maxWidth;\n      var numOfLines = this.splitTextToSize(text, linkWidth).length;\n      linkHeight = Math.ceil(lineHeight * numOfLines);\n    } else {\n      linkWidth = totalLineWidth;\n      linkHeight = lineHeight;\n    }\n\n    this.text(text, x, y, options);\n\n    //TODO We really need the text baseline height to do this correctly.\n    // Or ability to draw text on top, bottom, center, or baseline.\n    y += lineHeight * 0.2;\n    //handle x position based on the align option\n    if (options.align === \"center\") {\n      x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n    }\n    if (options.align === \"right\") {\n      x = x - totalLineWidth;\n    }\n    this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n    return totalLineWidth;\n  };\n\n  //TODO move into external library\n  /**\n   * @name getTextWidth\n   * @function\n   * @param {string} text\n   * @returns {number} txtWidth\n   */\n  jsPDFAPI.getTextWidth = function(text) {\n    var fontSize = this.internal.getFontSize();\n    var txtWidth =\n      (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n    return txtWidth;\n  };\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n   * Arabic Substition A\n   */\n  var arabicSubstitionA = {\n    0x0621: [0xfe80], // ARABIC LETTER HAMZA\n    0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n    0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n    0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n    0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n    0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n    0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n    0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n    0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n    0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n    0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n    0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n    0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n    0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n    0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n    0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n    0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n    0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n    0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n    0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n    0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n    0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n    0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n    0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n    0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n    0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n    0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n    0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n    0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n    0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n    0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n    0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n    0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n    0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n    0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n    0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n    0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n    0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n    0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n    0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n    0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n    0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n    0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n    0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n    0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n    0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n    0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n    0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n    0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n    0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n    0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n    0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n    0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n    0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n    0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n    0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n    0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n    0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n    0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n    0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n    0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n    0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n    0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n    0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n    0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n    0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n    0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n    0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n    0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n    0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n    0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n    0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n    0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n    0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n    0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n    0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n  };\n\n  /*\n    var ligaturesSubstitutionA = {\n        0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n    };\n    */\n\n  var ligatures = {\n    0xfedf: {\n      0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n      0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n      0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n      0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n    },\n    0xfee0: {\n      0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n      0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n      0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n      0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n    },\n    0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n    0x0651: {\n      0x064c: 0xfc5e, // Shadda + Dammatan\n      0x064d: 0xfc5f, // Shadda + Kasratan\n      0x064e: 0xfc60, // Shadda + Fatha\n      0x064f: 0xfc61, // Shadda + Damma\n      0x0650: 0xfc62 // Shadda + Kasra\n    }\n  };\n\n  var arabic_diacritics = {\n    1612: 64606, // Shadda + Dammatan\n    1613: 64607, // Shadda + Kasratan\n    1614: 64608, // Shadda + Fatha\n    1615: 64609, // Shadda + Damma\n    1616: 64610 // Shadda + Kasra\n  };\n\n  var alfletter = [1570, 1571, 1573, 1575];\n\n  var noChangeInForm = -1;\n  var isolatedForm = 0;\n  var finalForm = 1;\n  var initialForm = 2;\n  var medialForm = 3;\n\n  jsPDFAPI.__arabicParser__ = {};\n\n  //private\n  var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n    letter\n  ) {\n    return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n  });\n\n  var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n    letter\n  ) {\n    return (\n      typeof letter === \"string\" &&\n      /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n        letter\n      )\n    );\n  });\n\n  var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n    );\n  });\n\n  var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n    );\n  });\n\n  jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n    );\n  };\n\n  var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n    );\n  });\n\n  jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n    );\n  };\n\n  var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length == 4\n    );\n  });\n\n  var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n    letters\n  ) {\n    var i = 0;\n    var tmpLigatures = ligatures;\n    var result = \"\";\n    var effectedLetters = 0;\n\n    for (i = 0; i < letters.length; i += 1) {\n      if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n        effectedLetters++;\n        tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n        if (typeof tmpLigatures === \"number\") {\n          result += String.fromCharCode(tmpLigatures);\n          tmpLigatures = ligatures;\n          effectedLetters = 0;\n        }\n        if (i === letters.length - 1) {\n          tmpLigatures = ligatures;\n          result += letters.charAt(i - (effectedLetters - 1));\n          i = i - (effectedLetters - 1);\n          effectedLetters = 0;\n        }\n      } else {\n        tmpLigatures = ligatures;\n        result += letters.charAt(i - effectedLetters);\n        i = i - effectedLetters;\n        effectedLetters = 0;\n      }\n    }\n\n    return result;\n  });\n\n  jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n    return (\n      letter !== undefined &&\n      arabic_diacritics[letter.charCodeAt(0)] !== undefined\n    );\n  };\n\n  var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n    currentChar,\n    beforeChar,\n    nextChar\n  ) {\n    if (!isArabicLetter(currentChar)) {\n      return -1;\n    }\n\n    if (isInArabicSubstitutionA(currentChar) === false) {\n      return noChangeInForm;\n    }\n    if (\n      !arabicLetterHasFinalForm(currentChar) ||\n      (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n      (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n    ) {\n      return isolatedForm;\n    }\n\n    if (\n      arabicLetterHasMedialForm(currentChar) &&\n      isArabicLetter(beforeChar) &&\n      !isArabicEndLetter(beforeChar) &&\n      isArabicLetter(nextChar) &&\n      arabicLetterHasFinalForm(nextChar)\n    ) {\n      return medialForm;\n    }\n\n    if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n      return finalForm;\n    }\n    return initialForm;\n  });\n\n  /**\n   * @name processArabic\n   * @function\n   * @param {string} text\n   * @returns {string}\n   */\n  var parseArabic = function(text) {\n    text = text || \"\";\n\n    var result = \"\";\n    var i = 0;\n    var j = 0;\n    var position = 0;\n    var currentLetter = \"\";\n    var prevLetter = \"\";\n    var nextLetter = \"\";\n\n    var words = text.split(\"\\\\s+\");\n    var newWords = [];\n    for (i = 0; i < words.length; i += 1) {\n      newWords.push(\"\");\n      for (j = 0; j < words[i].length; j += 1) {\n        currentLetter = words[i][j];\n        prevLetter = words[i][j - 1];\n        nextLetter = words[i][j + 1];\n        if (isArabicLetter(currentLetter)) {\n          position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n          if (position !== -1) {\n            newWords[i] += String.fromCharCode(\n              arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n            );\n          } else {\n            newWords[i] += currentLetter;\n          }\n        } else {\n          newWords[i] += currentLetter;\n        }\n      }\n\n      newWords[i] = resolveLigatures(newWords[i]);\n    }\n    result = newWords.join(\" \");\n\n    return result;\n  };\n\n  var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n    var text =\n      typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n    var tmpText = [];\n    var result;\n\n    if (Array.isArray(text)) {\n      var i = 0;\n      tmpText = [];\n      for (i = 0; i < text.length; i += 1) {\n        if (Array.isArray(text[i])) {\n          tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n        } else {\n          tmpText.push([parseArabic(text[i])]);\n        }\n      }\n      result = tmpText;\n    } else {\n      result = parseArabic(text);\n    }\n    if (typeof arguments[0] === \"string\") {\n      return result;\n    } else {\n      arguments[0].text = result;\n      return arguments[0];\n    }\n  });\n\n  jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n   *\n   * @name autoPrint\n   * @function\n   * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n   * @returns {jsPDF}\n   * @example\n   * var doc = new jsPDF();\n   * doc.text(10, 10, 'This is a test');\n   * doc.autoPrint({variant: 'non-conform'});\n   * doc.save('autoprint.pdf');\n   */\n  jsPDFAPI.autoPrint = function(options) {\n    \"use strict\";\n    var refAutoPrintTag;\n    options = options || {};\n    options.variant = options.variant || \"non-conform\";\n\n    switch (options.variant) {\n      case \"javascript\":\n        //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n        this.addJS(\"print({});\");\n        break;\n      case \"non-conform\":\n      default:\n        this.internal.events.subscribe(\"postPutResources\", function() {\n          refAutoPrintTag = this.internal.newObject();\n          this.internal.out(\"<<\");\n          this.internal.out(\"/S /Named\");\n          this.internal.out(\"/Type /Action\");\n          this.internal.out(\"/N /Print\");\n          this.internal.out(\">>\");\n          this.internal.out(\"endobj\");\n        });\n\n        this.internal.events.subscribe(\"putCatalog\", function() {\n          this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n        });\n        break;\n    }\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * @class Canvas\n   * @classdesc A Canvas Wrapper for jsPDF\n   */\n  var Canvas = function() {\n    var jsPdfInstance = undefined;\n    Object.defineProperty(this, \"pdf\", {\n      get: function() {\n        return jsPdfInstance;\n      },\n      set: function(value) {\n        jsPdfInstance = value;\n      }\n    });\n\n    var _width = 150;\n    /**\n     * The height property is a positive integer reflecting the height HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n     * This is one of the two properties, the other being width, that controls the size of the canvas.\n     *\n     * @name width\n     */\n    Object.defineProperty(this, \"width\", {\n      get: function() {\n        return _width;\n      },\n      set: function(value) {\n        if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n          _width = 150;\n        } else {\n          _width = value;\n        }\n        if (this.getContext(\"2d\").pageWrapXEnabled) {\n          this.getContext(\"2d\").pageWrapX = _width + 1;\n        }\n      }\n    });\n\n    var _height = 300;\n    /**\n     * The width property is a positive integer reflecting the width HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n     * This is one of the two properties, the other being height, that controls the size of the canvas.\n     *\n     * @name height\n     */\n    Object.defineProperty(this, \"height\", {\n      get: function() {\n        return _height;\n      },\n      set: function(value) {\n        if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n          _height = 300;\n        } else {\n          _height = value;\n        }\n        if (this.getContext(\"2d\").pageWrapYEnabled) {\n          this.getContext(\"2d\").pageWrapY = _height + 1;\n        }\n      }\n    });\n\n    var _childNodes = [];\n    Object.defineProperty(this, \"childNodes\", {\n      get: function() {\n        return _childNodes;\n      },\n      set: function(value) {\n        _childNodes = value;\n      }\n    });\n\n    var _style = {};\n    Object.defineProperty(this, \"style\", {\n      get: function() {\n        return _style;\n      },\n      set: function(value) {\n        _style = value;\n      }\n    });\n\n    Object.defineProperty(this, \"parentNode\", {});\n  };\n\n  /**\n   * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n   *\n   * @name getContext\n   * @function\n   * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n   * @param {object} contextAttributes\n   */\n  Canvas.prototype.getContext = function(contextType, contextAttributes) {\n    contextType = contextType || \"2d\";\n    var key;\n\n    if (contextType !== \"2d\") {\n      return null;\n    }\n    for (key in contextAttributes) {\n      if (this.pdf.context2d.hasOwnProperty(key)) {\n        this.pdf.context2d[key] = contextAttributes[key];\n      }\n    }\n    this.pdf.context2d._canvas = this;\n    return this.pdf.context2d;\n  };\n\n  /**\n   * The toDataURL() method is just a stub to throw an error if accidently called.\n   *\n   * @name toDataURL\n   * @function\n   */\n  Canvas.prototype.toDataURL = function() {\n    throw new Error(\"toDataURL is not implemented.\");\n  };\n\n  jsPDFAPI.events.push([\n    \"initialized\",\n    function() {\n      this.canvas = new Canvas();\n      this.canvas.pdf = this;\n    }\n  ]);\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *               2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *               2013 Lee Driscoll, https://github.com/lsdriscoll\n *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n *               2014 James Hall, james@parall.ax\n *               2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n  var px2pt = (0.264583 * 72) / 25.4;\n  var printingHeaderRow = false;\n\n  var _initialize = function() {\n    if (typeof this.internal.__cell__ === \"undefined\") {\n      this.internal.__cell__ = {};\n      this.internal.__cell__.padding = 3;\n      this.internal.__cell__.headerFunction = undefined;\n      this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n      this.internal.__cell__.margins.width = this.getPageWidth();\n      _reset.call(this);\n    }\n  };\n\n  var _reset = function() {\n    this.internal.__cell__.lastCell = new Cell();\n    this.internal.__cell__.pages = 1;\n  };\n\n  var Cell = function() {\n    var _x = arguments[0];\n    Object.defineProperty(this, \"x\", {\n      enumerable: true,\n      get: function() {\n        return _x;\n      },\n      set: function(value) {\n        _x = value;\n      }\n    });\n    var _y = arguments[1];\n    Object.defineProperty(this, \"y\", {\n      enumerable: true,\n      get: function() {\n        return _y;\n      },\n      set: function(value) {\n        _y = value;\n      }\n    });\n    var _width = arguments[2];\n    Object.defineProperty(this, \"width\", {\n      enumerable: true,\n      get: function() {\n        return _width;\n      },\n      set: function(value) {\n        _width = value;\n      }\n    });\n    var _height = arguments[3];\n    Object.defineProperty(this, \"height\", {\n      enumerable: true,\n      get: function() {\n        return _height;\n      },\n      set: function(value) {\n        _height = value;\n      }\n    });\n    var _text = arguments[4];\n    Object.defineProperty(this, \"text\", {\n      enumerable: true,\n      get: function() {\n        return _text;\n      },\n      set: function(value) {\n        _text = value;\n      }\n    });\n    var _lineNumber = arguments[5];\n    Object.defineProperty(this, \"lineNumber\", {\n      enumerable: true,\n      get: function() {\n        return _lineNumber;\n      },\n      set: function(value) {\n        _lineNumber = value;\n      }\n    });\n    var _align = arguments[6];\n    Object.defineProperty(this, \"align\", {\n      enumerable: true,\n      get: function() {\n        return _align;\n      },\n      set: function(value) {\n        _align = value;\n      }\n    });\n\n    return this;\n  };\n\n  Cell.prototype.clone = function() {\n    return new Cell(\n      this.x,\n      this.y,\n      this.width,\n      this.height,\n      this.text,\n      this.lineNumber,\n      this.align\n    );\n  };\n\n  Cell.prototype.toArray = function() {\n    return [\n      this.x,\n      this.y,\n      this.width,\n      this.height,\n      this.text,\n      this.lineNumber,\n      this.align\n    ];\n  };\n\n  /**\n   * @name setHeaderFunction\n   * @function\n   * @param {function} func\n   */\n  jsPDFAPI.setHeaderFunction = function(func) {\n    _initialize.call(this);\n    this.internal.__cell__.headerFunction =\n      typeof func === \"function\" ? func : undefined;\n    return this;\n  };\n\n  /**\n   * @name getTextDimensions\n   * @function\n   * @param {string} txt\n   * @returns {Object} dimensions\n   */\n  jsPDFAPI.getTextDimensions = function(text, options) {\n    _initialize.call(this);\n    options = options || {};\n    var fontSize = options.fontSize || this.getFontSize();\n    var font = options.font || this.getFont();\n    var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n    var width = 0;\n    var amountOfLines = 0;\n    var height = 0;\n    var tempWidth = 0;\n    var scope = this;\n\n    if (!Array.isArray(text) && typeof text !== \"string\") {\n      if (typeof text === \"number\") {\n        text = String(text);\n      } else {\n        throw new Error(\n          \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n        );\n      }\n    }\n\n    const maxWidth = options.maxWidth;\n    if (maxWidth > 0) {\n      if (typeof text === \"string\") {\n        text = this.splitTextToSize(text, maxWidth);\n      } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n        text = text.reduce(function(acc, textLine) {\n          return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n        }, []);\n      }\n    } else {\n      // Without the else clause, it will not work if you do not pass along maxWidth\n      text = Array.isArray(text) ? text : [text];\n    }\n\n    for (var i = 0; i < text.length; i++) {\n      tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n      if (width < tempWidth) {\n        width = tempWidth;\n      }\n    }\n\n    if (width !== 0) {\n      amountOfLines = text.length;\n    }\n\n    width = width / scaleFactor;\n    height = Math.max(\n      (amountOfLines * fontSize * this.getLineHeightFactor() -\n        fontSize * (this.getLineHeightFactor() - 1)) /\n        scaleFactor,\n      0\n    );\n    return { w: width, h: height };\n  };\n\n  /**\n   * @name cellAddPage\n   * @function\n   */\n  jsPDFAPI.cellAddPage = function() {\n    _initialize.call(this);\n\n    this.addPage();\n\n    var margins = this.internal.__cell__.margins || NO_MARGINS;\n    this.internal.__cell__.lastCell = new Cell(\n      margins.left,\n      margins.top,\n      undefined,\n      undefined\n    );\n    this.internal.__cell__.pages += 1;\n\n    return this;\n  };\n\n  /**\n   * @name cell\n   * @function\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   * @param {string} text\n   * @param {number} lineNumber lineNumber\n   * @param {string} align\n   * @return {jsPDF} jsPDF-instance\n   */\n  var cell = (jsPDFAPI.cell = function() {\n    var currentCell;\n\n    if (arguments[0] instanceof Cell) {\n      currentCell = arguments[0];\n    } else {\n      currentCell = new Cell(\n        arguments[0],\n        arguments[1],\n        arguments[2],\n        arguments[3],\n        arguments[4],\n        arguments[5]\n      );\n    }\n    _initialize.call(this);\n    var lastCell = this.internal.__cell__.lastCell;\n    var padding = this.internal.__cell__.padding;\n    var margins = this.internal.__cell__.margins || NO_MARGINS;\n    var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n    var printHeaders = this.internal.__cell__.printHeaders;\n    // If this is not the first cell, we must change its position\n    if (typeof lastCell.lineNumber !== \"undefined\") {\n      if (lastCell.lineNumber === currentCell.lineNumber) {\n        //Same line\n        currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n        currentCell.y = lastCell.y || 0;\n      } else {\n        //New line\n        if (\n          lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n          this.getPageHeight()\n        ) {\n          this.cellAddPage();\n          currentCell.y = margins.top;\n          if (printHeaders && tableHeaderRow) {\n            this.printHeaderRow(currentCell.lineNumber, true);\n            currentCell.y += tableHeaderRow[0].height;\n          }\n        } else {\n          currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n        }\n      }\n    }\n\n    if (typeof currentCell.text[0] !== \"undefined\") {\n      this.rect(\n        currentCell.x,\n        currentCell.y,\n        currentCell.width,\n        currentCell.height,\n        printingHeaderRow === true ? \"FD\" : undefined\n      );\n      if (currentCell.align === \"right\") {\n        this.text(\n          currentCell.text,\n          currentCell.x + currentCell.width - padding,\n          currentCell.y + padding,\n          { align: \"right\", baseline: \"top\" }\n        );\n      } else if (currentCell.align === \"center\") {\n        this.text(\n          currentCell.text,\n          currentCell.x + currentCell.width / 2,\n          currentCell.y + padding,\n          {\n            align: \"center\",\n            baseline: \"top\",\n            maxWidth: currentCell.width - padding - padding\n          }\n        );\n      } else {\n        this.text(\n          currentCell.text,\n          currentCell.x + padding,\n          currentCell.y + padding,\n          {\n            align: \"left\",\n            baseline: \"top\",\n            maxWidth: currentCell.width - padding - padding\n          }\n        );\n      }\n    }\n    this.internal.__cell__.lastCell = currentCell;\n    return this;\n  });\n\n  /**\n     * Create a table from a set of data.\n     * @name table\n     * @function\n     * @param {Integer} [x] : left-position for top-left corner of table\n     * @param {Integer} [y] top-position for top-left corner of table\n     * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n     * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n     * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n     * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n     * @param {Object} [config.margins] margin values for left, top, bottom, and width\n     * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n     * @param {Object} [config.padding] cell-padding in pt to use (optional)\n     * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n     * @param {Object} [config.headerTextColor] default is #000 (optional)\n     * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n     * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n     * @returns {jsPDF} jsPDF-instance\n     */\n\n  jsPDFAPI.table = function(x, y, data, headers, config) {\n    _initialize.call(this);\n    if (!data) {\n      throw new Error(\"No data for PDF table.\");\n    }\n\n    config = config || {};\n\n    var headerNames = [],\n      headerLabels = [],\n      headerAligns = [],\n      i,\n      columnMatrix = {},\n      columnWidths = {},\n      column,\n      columnMinWidths = [],\n      j,\n      tableHeaderConfigs = [],\n      //set up defaults. If a value is provided in config, defaults will be overwritten:\n      autoSize = config.autoSize || false,\n      printHeaders = config.printHeaders === false ? false : true,\n      fontSize =\n        config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n          ? config.css[\"font-size\"] * 16\n          : config.fontSize || 12,\n      margins =\n        config.margins ||\n        Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n      padding = typeof config.padding === \"number\" ? config.padding : 3,\n      headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n      headerTextColor = config.headerTextColor || \"#000\";\n\n    _reset.call(this);\n\n    this.internal.__cell__.printHeaders = printHeaders;\n    this.internal.__cell__.margins = margins;\n    this.internal.__cell__.table_font_size = fontSize;\n    this.internal.__cell__.padding = padding;\n    this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n    this.internal.__cell__.headerTextColor = headerTextColor;\n    this.setFontSize(fontSize);\n\n    // Set header values\n    if (headers === undefined || headers === null) {\n      // No headers defined so we derive from data\n      headerNames = Object.keys(data[0]);\n      headerLabels = headerNames;\n      headerAligns = headerNames.map(function() {\n        return \"left\";\n      });\n    } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n      headerNames = headers.map(function(header) {\n        return header.name;\n      });\n      headerLabels = headers.map(function(header) {\n        return header.prompt || header.name || \"\";\n      });\n      headerAligns = headers.map(function(header) {\n        return header.align || \"left\";\n      });\n      // Split header configs into names and prompts\n      for (i = 0; i < headers.length; i += 1) {\n        columnWidths[headers[i].name] = headers[i].width * px2pt;\n      }\n    } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n      headerNames = headers;\n      headerLabels = headerNames;\n      headerAligns = headerNames.map(function() {\n        return \"left\";\n      });\n    }\n\n    if (\n      autoSize ||\n      (Array.isArray(headers) && typeof headers[0] === \"string\")\n    ) {\n      var headerName;\n      for (i = 0; i < headerNames.length; i += 1) {\n        headerName = headerNames[i];\n\n        // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n        columnMatrix[headerName] = data.map(function(rec) {\n          return rec[headerName];\n        });\n\n        // get header width\n        this.setFont(undefined, \"bold\");\n        columnMinWidths.push(\n          this.getTextDimensions(headerLabels[i], {\n            fontSize: this.internal.__cell__.table_font_size,\n            scaleFactor: this.internal.scaleFactor\n          }).w\n        );\n        column = columnMatrix[headerName];\n\n        // get cell widths\n        this.setFont(undefined, \"normal\");\n        for (j = 0; j < column.length; j += 1) {\n          columnMinWidths.push(\n            this.getTextDimensions(column[j], {\n              fontSize: this.internal.__cell__.table_font_size,\n              scaleFactor: this.internal.scaleFactor\n            }).w\n          );\n        }\n\n        // get final column width\n        columnWidths[headerName] =\n          Math.max.apply(null, columnMinWidths) + padding + padding;\n\n        //have to reset\n        columnMinWidths = [];\n      }\n    }\n\n    // -- Construct the table\n\n    if (printHeaders) {\n      var row = {};\n      for (i = 0; i < headerNames.length; i += 1) {\n        row[headerNames[i]] = {};\n        row[headerNames[i]].text = headerLabels[i];\n        row[headerNames[i]].align = headerAligns[i];\n      }\n\n      var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n      // Construct the header row\n      tableHeaderConfigs = headerNames.map(function(value) {\n        return new Cell(\n          x,\n          y,\n          columnWidths[value],\n          rowHeight,\n          row[value].text,\n          undefined,\n          row[value].align\n        );\n      });\n\n      // Store the table header config\n      this.setTableHeaderRow(tableHeaderConfigs);\n\n      // Print the header for the start of the table\n      this.printHeaderRow(1, false);\n    }\n\n    // Construct the data rows\n\n    var align = headers.reduce(function(pv, cv) {\n      pv[cv.name] = cv.align;\n      return pv;\n    }, {});\n    for (i = 0; i < data.length; i += 1) {\n      if (\"rowStart\" in config && config.rowStart instanceof Function) {\n        config.rowStart(\n          {\n            row: i,\n            data: data[i]\n          },\n          this\n        );\n      }\n      var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n      for (j = 0; j < headerNames.length; j += 1) {\n        var cellData = data[i][headerNames[j]];\n        if (\"cellStart\" in config && config.cellStart instanceof Function) {\n          config.cellStart(\n            {\n              row: i,\n              col: j,\n              data: cellData\n            },\n            this\n          );\n        }\n        cell.call(\n          this,\n          new Cell(\n            x,\n            y,\n            columnWidths[headerNames[j]],\n            lineHeight,\n            cellData,\n            i + 2,\n            align[headerNames[j]]\n          )\n        );\n      }\n    }\n    this.internal.__cell__.table_x = x;\n    this.internal.__cell__.table_y = y;\n    return this;\n  };\n\n  /**\n   * Calculate the height for containing the highest column\n   *\n   * @name calculateLineHeight\n   * @function\n   * @param {Object[]} model is the line of data we want to calculate the height of\n   * @param {Integer[]} columnWidths is size of each column\n   * @returns {number} lineHeight\n   * @private\n   */\n  var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n    var padding = this.internal.__cell__.padding;\n    var fontSize = this.internal.__cell__.table_font_size;\n    var scaleFactor = this.internal.scaleFactor;\n\n    return Object.keys(model)\n      .map(function(key) {\n        var value = model[key];\n        return this.splitTextToSize(\n          value.hasOwnProperty(\"text\") ? value.text : value,\n          columnWidths[key] - padding - padding\n        );\n      }, this)\n      .map(function(value) {\n        return (\n          (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n          padding +\n          padding\n        );\n      }, this)\n      .reduce(function(pv, cv) {\n        return Math.max(pv, cv);\n      }, 0);\n  };\n\n  /**\n   * Store the config for outputting a table header\n   *\n   * @name setTableHeaderRow\n   * @function\n   * @param {Object[]} config\n   * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n   * except the lineNumber parameter is excluded\n   */\n  jsPDFAPI.setTableHeaderRow = function(config) {\n    _initialize.call(this);\n    this.internal.__cell__.tableHeaderRow = config;\n  };\n\n  /**\n   * Output the store header row\n   *\n   * @name printHeaderRow\n   * @function\n   * @param {number} lineNumber The line number to output the header at\n   * @param {boolean} new_page\n   */\n  jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n    _initialize.call(this);\n    if (!this.internal.__cell__.tableHeaderRow) {\n      throw new Error(\"Property tableHeaderRow does not exist.\");\n    }\n\n    var tableHeaderCell;\n\n    printingHeaderRow = true;\n    if (typeof this.internal.__cell__.headerFunction === \"function\") {\n      var position = this.internal.__cell__.headerFunction(\n        this,\n        this.internal.__cell__.pages\n      );\n      this.internal.__cell__.lastCell = new Cell(\n        position[0],\n        position[1],\n        position[2],\n        position[3],\n        undefined,\n        -1\n      );\n    }\n    this.setFont(undefined, \"bold\");\n\n    var tempHeaderConf = [];\n    for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n      tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n      if (new_page) {\n        tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n        tempHeaderConf.push(tableHeaderCell);\n      }\n      tableHeaderCell.lineNumber = lineNumber;\n      var currentTextColor = this.getTextColor();\n      this.setTextColor(this.internal.__cell__.headerTextColor);\n      this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n      cell.call(this, tableHeaderCell);\n      this.setTextColor(currentTextColor);\n    }\n    if (tempHeaderConf.length > 0) {\n      this.setTableHeaderRow(tempHeaderConf);\n    }\n    this.setFont(undefined, \"normal\");\n    printingHeaderRow = false;\n  };\n})(jsPDF.API);\n","function toLookup(arr) {\n  return arr.reduce(function(lookup, name, index) {\n    lookup[name] = index;\n\n    return lookup;\n  }, {});\n}\n\nvar fontStyleOrder = {\n  italic: [\"italic\", \"oblique\", \"normal\"],\n  oblique: [\"oblique\", \"italic\", \"normal\"],\n  normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n  \"ultra-condensed\",\n  \"extra-condensed\",\n  \"condensed\",\n  \"semi-condensed\",\n  \"normal\",\n  \"semi-expanded\",\n  \"expanded\",\n  \"extra-expanded\",\n  \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n  stretch = stretch || \"normal\";\n\n  return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n  style = style || \"normal\";\n\n  return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n  if (!weight) {\n    return 400;\n  }\n\n  if (typeof weight === \"number\") {\n    // Ignore values which aren't valid font-weights.\n    return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n  }\n\n  if (/^\\d00$/.test(weight)) {\n    return parseInt(weight);\n  }\n\n  switch (weight) {\n    case \"bold\":\n      return 700;\n\n    case \"normal\":\n    default:\n      return 400;\n  }\n}\n\nexport function normalizeFontFace(fontFace) {\n  var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n  var style = normalizeFontStyle(fontFace.style);\n  var weight = normalizeFontWeight(fontFace.weight);\n  var stretch = normalizeFontStretch(fontFace.stretch);\n\n  return {\n    family: family,\n    style: style,\n    weight: weight,\n    stretch: stretch,\n    src: fontFace.src || [],\n\n    // The ref property maps this font-face to the font\n    // added by the .addFont() method.\n    ref: fontFace.ref || {\n      name: family,\n      style: [stretch, style, weight].join(\" \")\n    }\n  };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n  var map = {};\n\n  for (var i = 0; i < fontFaces.length; ++i) {\n    var normalized = normalizeFontFace(fontFaces[i]);\n\n    var name = normalized.family;\n    var stretch = normalized.stretch;\n    var style = normalized.style;\n    var weight = normalized.weight;\n\n    map[name] = map[name] || {};\n\n    map[name][stretch] = map[name][stretch] || {};\n    map[name][stretch][style] = map[name][stretch][style] || {};\n    map[name][stretch][style][weight] = normalized;\n  }\n\n  return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.<string, any>} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n  var i;\n\n  for (i = pivot; i >= 0 && i < order.length; i += dir) {\n    if (matchingSet[order[i]]) {\n      return matchingSet[order[i]];\n    }\n  }\n\n  for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n    if (matchingSet[order[i]]) {\n      return matchingSet[order[i]];\n    }\n  }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n  if (matchingSet[stretch]) {\n    return matchingSet[stretch];\n  }\n\n  var pivot = fontStretchLookup[stretch];\n\n  // If the font-stretch value is normal or more condensed, we want to\n  // start with a descending search, otherwise we should do ascending.\n  var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n  var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n  if (!match) {\n    // Since a font-family cannot exist without having at least one stretch value\n    // we should never reach this point.\n    throw new Error(\n      \"Could not find a matching font-stretch value for \" + stretch\n    );\n  }\n\n  return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n  if (matchingSet[fontStyle]) {\n    return matchingSet[fontStyle];\n  }\n\n  var ordering = fontStyleOrder[fontStyle];\n\n  for (var i = 0; i < ordering.length; ++i) {\n    if (matchingSet[ordering[i]]) {\n      return matchingSet[ordering[i]];\n    }\n  }\n\n  // Since a font-family cannot exist without having at least one style value\n  // we should never reach this point.\n  throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n  if (matchingSet[weight]) {\n    return matchingSet[weight];\n  }\n\n  if (weight === 400 && matchingSet[500]) {\n    return matchingSet[500];\n  }\n\n  if (weight === 500 && matchingSet[400]) {\n    return matchingSet[400];\n  }\n\n  var pivot = fontWeightsLookup[weight];\n\n  // If the font-stretch value is normal or more condensed, we want to\n  // start with a descending search, otherwise we should do ascending.\n  var dir = weight < 400 ? -1 : 1;\n  var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n  if (!match) {\n    // Since a font-family cannot exist without having at least one stretch value\n    // we should never reach this point.\n    throw new Error(\n      \"Could not find a matching font-weight for value \" + weight\n    );\n  }\n\n  return match;\n}\n\nvar defaultGenericFontFamilies = {\n  \"sans-serif\": \"helvetica\",\n  fixed: \"courier\",\n  monospace: \"courier\",\n  terminal: \"courier\",\n  cursive: \"times\",\n  fantasy: \"times\",\n  serif: \"times\"\n};\n\nvar systemFonts = {\n  caption: \"times\",\n  icon: \"times\",\n  menu: \"times\",\n  \"message-box\": \"times\",\n  \"small-caption\": \"times\",\n  \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n  return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n  opts = opts || {};\n\n  var defaultFontFamily = opts.defaultFontFamily || \"times\";\n  var genericFontFamilies = Object.assign(\n    {},\n    defaultGenericFontFamilies,\n    opts.genericFontFamilies || {}\n  );\n\n  var rule = null;\n  var matches = null;\n\n  for (var i = 0; i < rules.length; ++i) {\n    rule = normalizeFontFace(rules[i]);\n\n    if (genericFontFamilies[rule.family]) {\n      rule.family = genericFontFamilies[rule.family];\n    }\n\n    if (fontFaceMap.hasOwnProperty(rule.family)) {\n      matches = fontFaceMap[rule.family];\n\n      break;\n    }\n  }\n\n  // Always fallback to a known font family.\n  matches = matches || fontFaceMap[defaultFontFamily];\n\n  if (!matches) {\n    // At this point we should definitiely have a font family, but if we\n    // don't there is something wrong with our configuration\n    throw new Error(\n      \"Could not find a font-family for the rule '\" +\n        ruleToString(rule) +\n        \"' and default family '\" +\n        defaultFontFamily +\n        \"'.\"\n    );\n  }\n\n  matches = resolveFontStretch(rule.stretch, matches);\n  matches = resolveFontStyle(rule.style, matches);\n  matches = resolveFontWeight(rule.weight, matches);\n\n  if (!matches) {\n    // We should've fount\n    throw new Error(\n      \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n    );\n  }\n\n  return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n  return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n  return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n  var index = 0;\n\n  while (index < input.length) {\n    var current = input.charAt(index);\n\n    if (current === quote) {\n      return [input.substring(0, index), input.substring(index + 1)];\n    }\n\n    index += 1;\n  }\n\n  // Unexpected end of input\n  return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n  // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n  //\n  // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n  //\n  // Breakdown of regexp:\n  // -[a-z_]     - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n  // [a-z_]      - allow a-z and underscore at beginning of input\n  // [a-z0-9_-]* - after that, anything goes\n  var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n  // non quoted value contains illegal characters\n  if (match === null) {\n    return null;\n  }\n\n  return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n  var result = [];\n  var ch, parsed;\n  var remaining = input.trim();\n\n  if (remaining === \"\") {\n    return defaultFont;\n  }\n\n  if (remaining in systemFonts) {\n    return [systemFonts[remaining]];\n  }\n\n  while (remaining !== \"\") {\n    parsed = null;\n    remaining = eatWhiteSpace(remaining);\n    ch = remaining.charAt(0);\n\n    switch (ch) {\n      case '\"':\n      case \"'\":\n        parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n        break;\n\n      default:\n        parsed = parseNonQuotedFontFamily(remaining);\n        break;\n    }\n\n    if (parsed === null) {\n      return defaultFont;\n    }\n\n    result.push(parsed[0]);\n\n    remaining = eatWhiteSpace(parsed[1]);\n\n    // We expect end of input or a comma separator here\n    if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n      return defaultFont;\n    }\n\n    remaining = remaining.replace(/^,/, \"\");\n  }\n\n  return result;\n}\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n  buildFontFaceMap,\r\n  parseFontFamily,\r\n  resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n  \"use strict\";\r\n  var ContextLayer = function(ctx) {\r\n    ctx = ctx || {};\r\n    this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n    this.strokeOpacity = ctx.strokeOpacity || 1;\r\n    this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n    this.fillStyle = ctx.fillStyle || \"#000000\";\r\n    this.isFillTransparent = ctx.isFillTransparent || false;\r\n    this.fillOpacity = ctx.fillOpacity || 1;\r\n    this.font = ctx.font || \"10px sans-serif\";\r\n    this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n    this.textAlign = ctx.textAlign || \"left\";\r\n    this.lineWidth = ctx.lineWidth || 1;\r\n    this.lineJoin = ctx.lineJoin || \"miter\";\r\n    this.lineCap = ctx.lineCap || \"butt\";\r\n    this.path = ctx.path || [];\r\n    this.transform =\r\n      typeof ctx.transform !== \"undefined\"\r\n        ? ctx.transform.clone()\r\n        : new Matrix();\r\n    this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n    this.globalAlpha = ctx.globalAlpha || 1.0;\r\n    this.clip_path = ctx.clip_path || [];\r\n    this.currentPoint = ctx.currentPoint || new Point();\r\n    this.miterLimit = ctx.miterLimit || 10.0;\r\n    this.lastPoint = ctx.lastPoint || new Point();\r\n    this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n    this.lineDash = ctx.lineDash || [];\r\n    this.margin = ctx.margin || [0, 0, 0, 0];\r\n    this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n    this.ignoreClearRect =\r\n      typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n    return this;\r\n  };\r\n\r\n  //stub\r\n  var f2,\r\n    getHorizontalCoordinateString,\r\n    getVerticalCoordinateString,\r\n    getHorizontalCoordinate,\r\n    getVerticalCoordinate,\r\n    Point,\r\n    Rectangle,\r\n    Matrix,\r\n    _ctx;\r\n  jsPDFAPI.events.push([\r\n    \"initialized\",\r\n    function() {\r\n      this.context2d = new Context2D(this);\r\n\r\n      f2 = this.internal.f2;\r\n      getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n      getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n      getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n      getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n      Point = this.internal.Point;\r\n      Rectangle = this.internal.Rectangle;\r\n      Matrix = this.internal.Matrix;\r\n      _ctx = new ContextLayer();\r\n    }\r\n  ]);\r\n\r\n  var Context2D = function(pdf) {\r\n    Object.defineProperty(this, \"canvas\", {\r\n      get: function() {\r\n        return { parentNode: false, style: false };\r\n      }\r\n    });\r\n\r\n    var _pdf = pdf;\r\n    Object.defineProperty(this, \"pdf\", {\r\n      get: function() {\r\n        return _pdf;\r\n      }\r\n    });\r\n\r\n    var _pageWrapXEnabled = false;\r\n    /**\r\n     * @name pageWrapXEnabled\r\n     * @type {boolean}\r\n     * @default false\r\n     */\r\n    Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n      get: function() {\r\n        return _pageWrapXEnabled;\r\n      },\r\n      set: function(value) {\r\n        _pageWrapXEnabled = Boolean(value);\r\n      }\r\n    });\r\n\r\n    var _pageWrapYEnabled = false;\r\n    /**\r\n     * @name pageWrapYEnabled\r\n     * @type {boolean}\r\n     * @default true\r\n     */\r\n    Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n      get: function() {\r\n        return _pageWrapYEnabled;\r\n      },\r\n      set: function(value) {\r\n        _pageWrapYEnabled = Boolean(value);\r\n      }\r\n    });\r\n\r\n    var _posX = 0;\r\n    /**\r\n     * @name posX\r\n     * @type {number}\r\n     * @default 0\r\n     */\r\n    Object.defineProperty(this, \"posX\", {\r\n      get: function() {\r\n        return _posX;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _posX = value;\r\n        }\r\n      }\r\n    });\r\n\r\n    var _posY = 0;\r\n    /**\r\n     * @name posY\r\n     * @type {number}\r\n     * @default 0\r\n     */\r\n    Object.defineProperty(this, \"posY\", {\r\n      get: function() {\r\n        return _posY;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          _posY = value;\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n     * @name margin\r\n     * @type {number|number[]}\r\n     * @default [0, 0, 0, 0]\r\n     */\r\n    Object.defineProperty(this, \"margin\", {\r\n      get: function() {\r\n        return _ctx.margin;\r\n      },\r\n      set: function(value) {\r\n        var margin;\r\n        if (typeof value === \"number\") {\r\n          margin = [value, value, value, value];\r\n        } else {\r\n          margin = new Array(4);\r\n          margin[0] = value[0];\r\n          margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n          margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n          margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n        }\r\n        _ctx.margin = margin;\r\n      }\r\n    });\r\n\r\n    var _autoPaging = false;\r\n    /**\r\n     * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n     * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n     * pages if required.\r\n     *\r\n     * Context2d supports different modes:\r\n     * <ul>\r\n     * <li>\r\n     *   <code>false</code>: Auto paging is disabled.\r\n     * </li>\r\n     * <li>\r\n     *   <code>true</code> or <code>'slice'</code>: Will cut shapes or text chunks across page breaks. Will possibly\r\n     *   slice text in half, making it difficult to read.\r\n     * </li>\r\n     * <li>\r\n     *   <code>'text'</code>: Trys not to cut text in half across page breaks. Works best for documents consisting\r\n     *   mostly of a single column of text.\r\n     * </li>\r\n     * </ul>\r\n     * @name Context2D#autoPaging\r\n     * @type {boolean|\"slice\"|\"text\"}\r\n     * @default false\r\n     */\r\n    Object.defineProperty(this, \"autoPaging\", {\r\n      get: function() {\r\n        return _autoPaging;\r\n      },\r\n      set: function(value) {\r\n        _autoPaging = value;\r\n      }\r\n    });\r\n\r\n    var lastBreak = 0;\r\n    /**\r\n     * @name lastBreak\r\n     * @type {number}\r\n     * @default 0\r\n     */\r\n    Object.defineProperty(this, \"lastBreak\", {\r\n      get: function() {\r\n        return lastBreak;\r\n      },\r\n      set: function(value) {\r\n        lastBreak = value;\r\n      }\r\n    });\r\n\r\n    var pageBreaks = [];\r\n    /**\r\n     * Y Position of page breaks.\r\n     * @name pageBreaks\r\n     * @type {number}\r\n     * @default 0\r\n     */\r\n    Object.defineProperty(this, \"pageBreaks\", {\r\n      get: function() {\r\n        return pageBreaks;\r\n      },\r\n      set: function(value) {\r\n        pageBreaks = value;\r\n      }\r\n    });\r\n\r\n    /**\r\n     * @name ctx\r\n     * @type {object}\r\n     * @default {}\r\n     */\r\n    Object.defineProperty(this, \"ctx\", {\r\n      get: function() {\r\n        return _ctx;\r\n      },\r\n      set: function(value) {\r\n        if (value instanceof ContextLayer) {\r\n          _ctx = value;\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * @name path\r\n     * @type {array}\r\n     * @default []\r\n     */\r\n    Object.defineProperty(this, \"path\", {\r\n      get: function() {\r\n        return _ctx.path;\r\n      },\r\n      set: function(value) {\r\n        _ctx.path = value;\r\n      }\r\n    });\r\n\r\n    /**\r\n     * @name ctxStack\r\n     * @type {array}\r\n     * @default []\r\n     */\r\n    var _ctxStack = [];\r\n    Object.defineProperty(this, \"ctxStack\", {\r\n      get: function() {\r\n        return _ctxStack;\r\n      },\r\n      set: function(value) {\r\n        _ctxStack = value;\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n     *\r\n     * @name fillStyle\r\n     * @default #000000\r\n     * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000<br />\r\n     * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)<br />\r\n     * A pattern object to use to fill the drawing (not supported by context2d)\r\n     */\r\n    Object.defineProperty(this, \"fillStyle\", {\r\n      get: function() {\r\n        return this.ctx.fillStyle;\r\n      },\r\n      set: function(value) {\r\n        var rgba;\r\n        rgba = getRGBA(value);\r\n\r\n        this.ctx.fillStyle = rgba.style;\r\n        this.ctx.isFillTransparent = rgba.a === 0;\r\n        this.ctx.fillOpacity = rgba.a;\r\n\r\n        this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n        this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Sets or returns the color, gradient, or pattern used for strokes\r\n     *\r\n     * @name strokeStyle\r\n     * @default #000000\r\n     * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n     * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n     * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n     */\r\n    Object.defineProperty(this, \"strokeStyle\", {\r\n      get: function() {\r\n        return this.ctx.strokeStyle;\r\n      },\r\n      set: function(value) {\r\n        var rgba = getRGBA(value);\r\n\r\n        this.ctx.strokeStyle = rgba.style;\r\n        this.ctx.isStrokeTransparent = rgba.a === 0;\r\n        this.ctx.strokeOpacity = rgba.a;\r\n\r\n        if (rgba.a === 0) {\r\n          this.pdf.setDrawColor(255, 255, 255);\r\n        } else if (rgba.a === 1) {\r\n          this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n        } else {\r\n          this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Sets or returns the style of the end caps for a line\r\n     *\r\n     * @name lineCap\r\n     * @default butt\r\n     * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line <br/>\r\n     * round A rounded end cap is added to each end of the line<br/>\r\n     * square A square end cap is added to each end of the line<br/>\r\n     */\r\n    Object.defineProperty(this, \"lineCap\", {\r\n      get: function() {\r\n        return this.ctx.lineCap;\r\n      },\r\n      set: function(value) {\r\n        if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n          this.ctx.lineCap = value;\r\n          this.pdf.setLineCap(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Sets or returns the current line width\r\n     *\r\n     * @name lineWidth\r\n     * @default 1\r\n     * @property {number} lineWidth The current line width, in pixels\r\n     */\r\n    Object.defineProperty(this, \"lineWidth\", {\r\n      get: function() {\r\n        return this.ctx.lineWidth;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          this.ctx.lineWidth = value;\r\n          this.pdf.setLineWidth(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Sets or returns the type of corner created, when two lines meet\r\n     */\r\n    Object.defineProperty(this, \"lineJoin\", {\r\n      get: function() {\r\n        return this.ctx.lineJoin;\r\n      },\r\n      set: function(value) {\r\n        if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n          this.ctx.lineJoin = value;\r\n          this.pdf.setLineJoin(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n     *\r\n     * @name miterLimit\r\n     * @default 10\r\n     */\r\n    Object.defineProperty(this, \"miterLimit\", {\r\n      get: function() {\r\n        return this.ctx.miterLimit;\r\n      },\r\n      set: function(value) {\r\n        if (!isNaN(value)) {\r\n          this.ctx.miterLimit = value;\r\n          this.pdf.setMiterLimit(value);\r\n        }\r\n      }\r\n    });\r\n\r\n    Object.defineProperty(this, \"textBaseline\", {\r\n      get: function() {\r\n        return this.ctx.textBaseline;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.textBaseline = value;\r\n      }\r\n    });\r\n\r\n    Object.defineProperty(this, \"textAlign\", {\r\n      get: function() {\r\n        return this.ctx.textAlign;\r\n      },\r\n      set: function(value) {\r\n        if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n          this.ctx.textAlign = value;\r\n        }\r\n      }\r\n    });\r\n\r\n    var _fontFaceMap = null;\r\n\r\n    function getFontFaceMap(pdf, fontFaces) {\r\n      if (_fontFaceMap === null) {\r\n        var fontMap = pdf.getFontList();\r\n\r\n        var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n        _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n      }\r\n\r\n      return _fontFaceMap;\r\n    }\r\n\r\n    function convertToFontFaces(fontMap) {\r\n      var fontFaces = [];\r\n\r\n      Object.keys(fontMap).forEach(function(family) {\r\n        var styles = fontMap[family];\r\n\r\n        styles.forEach(function(style) {\r\n          var fontFace = null;\r\n\r\n          switch (style) {\r\n            case \"bold\":\r\n              fontFace = {\r\n                family: family,\r\n                weight: \"bold\"\r\n              };\r\n              break;\r\n\r\n            case \"italic\":\r\n              fontFace = {\r\n                family: family,\r\n                style: \"italic\"\r\n              };\r\n              break;\r\n\r\n            case \"bolditalic\":\r\n              fontFace = {\r\n                family: family,\r\n                weight: \"bold\",\r\n                style: \"italic\"\r\n              };\r\n              break;\r\n\r\n            case \"\":\r\n            case \"normal\":\r\n              fontFace = {\r\n                family: family\r\n              };\r\n              break;\r\n          }\r\n\r\n          // If font-face is still null here, it is a font with some styling we don't recognize and\r\n          // cannot map or it is a font added via the fontFaces option of .html().\r\n          if (fontFace !== null) {\r\n            fontFace.ref = {\r\n              name: family,\r\n              style: style\r\n            };\r\n\r\n            fontFaces.push(fontFace);\r\n          }\r\n        });\r\n      });\r\n\r\n      return fontFaces;\r\n    }\r\n\r\n    var _fontFaces = null;\r\n    /**\r\n     * A map of available font-faces, as passed in the options of\r\n     * .html(). If set a limited implementation of the font style matching\r\n     * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n     * will be used. If not set it will fallback to previous behavior.\r\n     */\r\n\r\n    Object.defineProperty(this, \"fontFaces\", {\r\n      get: function() {\r\n        return _fontFaces;\r\n      },\r\n      set: function(value) {\r\n        _fontFaceMap = null;\r\n        _fontFaces = value;\r\n      }\r\n    });\r\n\r\n    Object.defineProperty(this, \"font\", {\r\n      get: function() {\r\n        return this.ctx.font;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.font = value;\r\n        var rx, matches;\r\n\r\n        //source: https://stackoverflow.com/a/10136041\r\n        // eslint-disable-next-line no-useless-escape\r\n        rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n        matches = rx.exec(value);\r\n        if (matches !== null) {\r\n          var fontStyle = matches[1];\r\n          var fontVariant = matches[2];\r\n          var fontWeight = matches[3];\r\n          var fontSize = matches[4];\r\n          var lineHeight = matches[5];\r\n          var fontFamily = matches[6];\r\n        } else {\r\n          return;\r\n        }\r\n        var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n        var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n        if (\"px\" === fontSizeUnit) {\r\n          fontSize = Math.floor(\r\n            parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n          );\r\n        } else if (\"em\" === fontSizeUnit) {\r\n          fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n        } else {\r\n          fontSize = Math.floor(\r\n            parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n          );\r\n        }\r\n\r\n        this.pdf.setFontSize(fontSize);\r\n        var parts = parseFontFamily(fontFamily);\r\n\r\n        if (this.fontFaces) {\r\n          var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n          var rules = parts.map(function(ff) {\r\n            return {\r\n              family: ff,\r\n              stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n              weight: fontWeight,\r\n              style: fontStyle\r\n            };\r\n          });\r\n\r\n          var font = resolveFontFace(fontFaceMap, rules);\r\n          this.pdf.setFont(font.ref.name, font.ref.style);\r\n          return;\r\n        }\r\n\r\n        var style = \"\";\r\n        if (\r\n          fontWeight === \"bold\" ||\r\n          parseInt(fontWeight, 10) >= 700 ||\r\n          fontStyle === \"bold\"\r\n        ) {\r\n          style = \"bold\";\r\n        }\r\n\r\n        if (fontStyle === \"italic\") {\r\n          style += \"italic\";\r\n        }\r\n\r\n        if (style.length === 0) {\r\n          style = \"normal\";\r\n        }\r\n        var jsPdfFontName = \"\";\r\n\r\n        var fallbackFonts = {\r\n          arial: \"Helvetica\",\r\n          Arial: \"Helvetica\",\r\n          verdana: \"Helvetica\",\r\n          Verdana: \"Helvetica\",\r\n          helvetica: \"Helvetica\",\r\n          Helvetica: \"Helvetica\",\r\n          \"sans-serif\": \"Helvetica\",\r\n          fixed: \"Courier\",\r\n          monospace: \"Courier\",\r\n          terminal: \"Courier\",\r\n          cursive: \"Times\",\r\n          fantasy: \"Times\",\r\n          serif: \"Times\"\r\n        };\r\n\r\n        for (var i = 0; i < parts.length; i++) {\r\n          if (\r\n            this.pdf.internal.getFont(parts[i], style, {\r\n              noFallback: true,\r\n              disableWarning: true\r\n            }) !== undefined\r\n          ) {\r\n            jsPdfFontName = parts[i];\r\n            break;\r\n          } else if (\r\n            style === \"bolditalic\" &&\r\n            this.pdf.internal.getFont(parts[i], \"bold\", {\r\n              noFallback: true,\r\n              disableWarning: true\r\n            }) !== undefined\r\n          ) {\r\n            jsPdfFontName = parts[i];\r\n            style = \"bold\";\r\n          } else if (\r\n            this.pdf.internal.getFont(parts[i], \"normal\", {\r\n              noFallback: true,\r\n              disableWarning: true\r\n            }) !== undefined\r\n          ) {\r\n            jsPdfFontName = parts[i];\r\n            style = \"normal\";\r\n            break;\r\n          }\r\n        }\r\n        if (jsPdfFontName === \"\") {\r\n          for (var j = 0; j < parts.length; j++) {\r\n            if (fallbackFonts[parts[j]]) {\r\n              jsPdfFontName = fallbackFonts[parts[j]];\r\n              break;\r\n            }\r\n          }\r\n        }\r\n        jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n        this.pdf.setFont(jsPdfFontName, style);\r\n      }\r\n    });\r\n\r\n    Object.defineProperty(this, \"globalCompositeOperation\", {\r\n      get: function() {\r\n        return this.ctx.globalCompositeOperation;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.globalCompositeOperation = value;\r\n      }\r\n    });\r\n\r\n    Object.defineProperty(this, \"globalAlpha\", {\r\n      get: function() {\r\n        return this.ctx.globalAlpha;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.globalAlpha = value;\r\n      }\r\n    });\r\n\r\n    /**\r\n     * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n     *\r\n     * @name lineDashOffset\r\n     * @default 0.0\r\n     */\r\n    Object.defineProperty(this, \"lineDashOffset\", {\r\n      get: function() {\r\n        return this.ctx.lineDashOffset;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.lineDashOffset = value;\r\n        setLineDash.call(this);\r\n      }\r\n    });\r\n\r\n    // Not HTML API\r\n    Object.defineProperty(this, \"lineDash\", {\r\n      get: function() {\r\n        return this.ctx.lineDash;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.lineDash = value;\r\n        setLineDash.call(this);\r\n      }\r\n    });\r\n\r\n    // Not HTML API\r\n    Object.defineProperty(this, \"ignoreClearRect\", {\r\n      get: function() {\r\n        return this.ctx.ignoreClearRect;\r\n      },\r\n      set: function(value) {\r\n        this.ctx.ignoreClearRect = Boolean(value);\r\n      }\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Sets the line dash pattern used when stroking lines.\r\n   * @name setLineDash\r\n   * @function\r\n   * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n   */\r\n  Context2D.prototype.setLineDash = function(dashArray) {\r\n    this.lineDash = dashArray;\r\n  };\r\n\r\n  /**\r\n   * gets the current line dash pattern.\r\n   * @name getLineDash\r\n   * @function\r\n   * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n   */\r\n  Context2D.prototype.getLineDash = function() {\r\n    if (this.lineDash.length % 2) {\r\n      // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n      return this.lineDash.concat(this.lineDash);\r\n    } else {\r\n      // The copied value is returned to prevent contamination from outside.\r\n      return this.lineDash.slice();\r\n    }\r\n  };\r\n\r\n  Context2D.prototype.fill = function() {\r\n    pathPreProcess.call(this, \"fill\", false);\r\n  };\r\n\r\n  /**\r\n   * Actually draws the path you have defined\r\n   *\r\n   * @name stroke\r\n   * @function\r\n   * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n   */\r\n  Context2D.prototype.stroke = function() {\r\n    pathPreProcess.call(this, \"stroke\", false);\r\n  };\r\n\r\n  /**\r\n   * Begins a path, or resets the current\r\n   *\r\n   * @name beginPath\r\n   * @function\r\n   * @description The beginPath() method begins a path, or resets the current path.\r\n   */\r\n  Context2D.prototype.beginPath = function() {\r\n    this.path = [\r\n      {\r\n        type: \"begin\"\r\n      }\r\n    ];\r\n  };\r\n\r\n  /**\r\n   * Moves the path to the specified point in the canvas, without creating a line\r\n   *\r\n   * @name moveTo\r\n   * @function\r\n   * @param x {Number} The x-coordinate of where to move the path to\r\n   * @param y {Number} The y-coordinate of where to move the path to\r\n   */\r\n  Context2D.prototype.moveTo = function(x, y) {\r\n    if (isNaN(x) || isNaN(y)) {\r\n      console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n    }\r\n\r\n    var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n    this.path.push({\r\n      type: \"mt\",\r\n      x: pt.x,\r\n      y: pt.y\r\n    });\r\n    this.ctx.lastPoint = new Point(x, y);\r\n  };\r\n\r\n  /**\r\n   * Creates a path from the current point back to the starting point\r\n   *\r\n   * @name closePath\r\n   * @function\r\n   * @description The closePath() method creates a path from the current point back to the starting point.\r\n   */\r\n  Context2D.prototype.closePath = function() {\r\n    var pathBegin = new Point(0, 0);\r\n    var i = 0;\r\n    for (i = this.path.length - 1; i !== -1; i--) {\r\n      if (this.path[i].type === \"begin\") {\r\n        if (\r\n          typeof this.path[i + 1] === \"object\" &&\r\n          typeof this.path[i + 1].x === \"number\"\r\n        ) {\r\n          pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    this.path.push({\r\n      type: \"close\"\r\n    });\r\n    this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n  };\r\n\r\n  /**\r\n   * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n   *\r\n   * @name lineTo\r\n   * @function\r\n   * @param x The x-coordinate of where to create the line to\r\n   * @param y The y-coordinate of where to create the line to\r\n   * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n   */\r\n  Context2D.prototype.lineTo = function(x, y) {\r\n    if (isNaN(x) || isNaN(y)) {\r\n      console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n    }\r\n\r\n    var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n    this.path.push({\r\n      type: \"lt\",\r\n      x: pt.x,\r\n      y: pt.y\r\n    });\r\n    this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n  };\r\n\r\n  /**\r\n   * Clips a region of any shape and size from the original canvas\r\n   *\r\n   * @name clip\r\n   * @function\r\n   * @description The clip() method clips a region of any shape and size from the original canvas.\r\n   */\r\n  Context2D.prototype.clip = function() {\r\n    this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n    pathPreProcess.call(this, null, true);\r\n  };\r\n\r\n  /**\r\n   * Creates a cubic Bézier curve\r\n   *\r\n   * @name quadraticCurveTo\r\n   * @function\r\n   * @param cpx {Number} The x-coordinate of the Bézier control point\r\n   * @param cpy {Number} The y-coordinate of the Bézier control point\r\n   * @param x {Number} The x-coordinate of the ending point\r\n   * @param y {Number} The y-coordinate of the ending point\r\n   * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.<br /><br /> A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n   */\r\n  Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n      console.error(\r\n        \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n        arguments\r\n      );\r\n      throw new Error(\r\n        \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n      );\r\n    }\r\n\r\n    var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n    var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n    this.path.push({\r\n      type: \"qct\",\r\n      x1: pt1.x,\r\n      y1: pt1.y,\r\n      x: pt0.x,\r\n      y: pt0.y\r\n    });\r\n    this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n  };\r\n\r\n  /**\r\n   * Creates a cubic Bézier curve\r\n   *\r\n   * @name bezierCurveTo\r\n   * @function\r\n   * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n   * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n   * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n   * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n   * @param x {Number} The x-coordinate of the ending point\r\n   * @param y {Number} The y-coordinate of the ending point\r\n   * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve. <br /><br />A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve.  The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n   */\r\n  Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n    if (\r\n      isNaN(x) ||\r\n      isNaN(y) ||\r\n      isNaN(cp1x) ||\r\n      isNaN(cp1y) ||\r\n      isNaN(cp2x) ||\r\n      isNaN(cp2y)\r\n    ) {\r\n      console.error(\r\n        \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n        arguments\r\n      );\r\n      throw new Error(\r\n        \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n      );\r\n    }\r\n    var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n    var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n    var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n    this.path.push({\r\n      type: \"bct\",\r\n      x1: pt1.x,\r\n      y1: pt1.y,\r\n      x2: pt2.x,\r\n      y2: pt2.y,\r\n      x: pt0.x,\r\n      y: pt0.y\r\n    });\r\n    this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n  };\r\n\r\n  /**\r\n   * Creates an arc/curve (used to create circles, or parts of circles)\r\n   *\r\n   * @name arc\r\n   * @function\r\n   * @param x {Number} The x-coordinate of the center of the circle\r\n   * @param y {Number} The y-coordinate of the center of the circle\r\n   * @param radius {Number} The radius of the circle\r\n   * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n   * @param endAngle {Number} The ending angle, in radians\r\n   * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n   * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n   */\r\n  Context2D.prototype.arc = function(\r\n    x,\r\n    y,\r\n    radius,\r\n    startAngle,\r\n    endAngle,\r\n    counterclockwise\r\n  ) {\r\n    if (\r\n      isNaN(x) ||\r\n      isNaN(y) ||\r\n      isNaN(radius) ||\r\n      isNaN(startAngle) ||\r\n      isNaN(endAngle)\r\n    ) {\r\n      console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n    }\r\n    counterclockwise = Boolean(counterclockwise);\r\n\r\n    if (!this.ctx.transform.isIdentity) {\r\n      var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n      x = xpt.x;\r\n      y = xpt.y;\r\n\r\n      var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n      var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n      radius = Math.sqrt(\r\n        Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n          Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n      );\r\n    }\r\n    if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n      startAngle = 0;\r\n      endAngle = 2 * Math.PI;\r\n    }\r\n\r\n    this.path.push({\r\n      type: \"arc\",\r\n      x: x,\r\n      y: y,\r\n      radius: radius,\r\n      startAngle: startAngle,\r\n      endAngle: endAngle,\r\n      counterclockwise: counterclockwise\r\n    });\r\n    // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n  };\r\n\r\n  /**\r\n   * Creates an arc/curve between two tangents\r\n   *\r\n   * @name arcTo\r\n   * @function\r\n   * @param x1 {Number} The x-coordinate of the first tangent\r\n   * @param y1 {Number} The y-coordinate of the first tangent\r\n   * @param x2 {Number} The x-coordinate of the second tangent\r\n   * @param y2 {Number} The y-coordinate of the second tangent\r\n   * @param radius The radius of the arc\r\n   * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n   */\r\n  // eslint-disable-next-line no-unused-vars\r\n  Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n    throw new Error(\"arcTo not implemented.\");\r\n  };\r\n\r\n  /**\r\n   * Creates a rectangle\r\n   *\r\n   * @name rect\r\n   * @function\r\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n   * @param w {Number} The width of the rectangle, in pixels\r\n   * @param h {Number} The height of the rectangle, in pixels\r\n   * @description The rect() method creates a rectangle.\r\n   */\r\n  Context2D.prototype.rect = function(x, y, w, h) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n      console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n    }\r\n    this.moveTo(x, y);\r\n    this.lineTo(x + w, y);\r\n    this.lineTo(x + w, y + h);\r\n    this.lineTo(x, y + h);\r\n    this.lineTo(x, y);\r\n    this.lineTo(x + w, y);\r\n    this.lineTo(x, y);\r\n  };\r\n\r\n  /**\r\n   * Draws a \"filled\" rectangle\r\n   *\r\n   * @name fillRect\r\n   * @function\r\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n   * @param w {Number} The width of the rectangle, in pixels\r\n   * @param h {Number} The height of the rectangle, in pixels\r\n   * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n   */\r\n  Context2D.prototype.fillRect = function(x, y, w, h) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n      console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n    }\r\n    if (isFillTransparent.call(this)) {\r\n      return;\r\n    }\r\n    var tmp = {};\r\n    if (this.lineCap !== \"butt\") {\r\n      tmp.lineCap = this.lineCap;\r\n      this.lineCap = \"butt\";\r\n    }\r\n    if (this.lineJoin !== \"miter\") {\r\n      tmp.lineJoin = this.lineJoin;\r\n      this.lineJoin = \"miter\";\r\n    }\r\n\r\n    this.beginPath();\r\n    this.rect(x, y, w, h);\r\n    this.fill();\r\n\r\n    if (tmp.hasOwnProperty(\"lineCap\")) {\r\n      this.lineCap = tmp.lineCap;\r\n    }\r\n    if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n      this.lineJoin = tmp.lineJoin;\r\n    }\r\n  };\r\n\r\n  /**\r\n   *     Draws a rectangle (no fill)\r\n   *\r\n   * @name strokeRect\r\n   * @function\r\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n   * @param w {Number} The width of the rectangle, in pixels\r\n   * @param h {Number} The height of the rectangle, in pixels\r\n   * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n   */\r\n  Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n      console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n    }\r\n    if (isStrokeTransparent.call(this)) {\r\n      return;\r\n    }\r\n    this.beginPath();\r\n    this.rect(x, y, w, h);\r\n    this.stroke();\r\n  };\r\n\r\n  /**\r\n   * Clears the specified pixels within a given rectangle\r\n   *\r\n   * @name clearRect\r\n   * @function\r\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n   * @param w {Number} The width of the rectangle to clear, in pixels\r\n   * @param h {Number} The height of the rectangle to clear, in pixels\r\n   * @description We cannot clear PDF commands that were already written to PDF, so we use white instead. <br />\r\n   * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n   * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n   * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n   *\r\n   */\r\n  Context2D.prototype.clearRect = function(x, y, w, h) {\r\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n      console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n    }\r\n    if (this.ignoreClearRect) {\r\n      return;\r\n    }\r\n\r\n    this.fillStyle = \"#ffffff\";\r\n    this.fillRect(x, y, w, h);\r\n  };\r\n\r\n  /**\r\n   * Saves the state of the current context\r\n   *\r\n   * @name save\r\n   * @function\r\n   */\r\n  Context2D.prototype.save = function(doStackPush) {\r\n    doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n    var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n    for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n      this.pdf.setPage(i + 1);\r\n      this.pdf.internal.out(\"q\");\r\n    }\r\n    this.pdf.setPage(tmpPageNumber);\r\n\r\n    if (doStackPush) {\r\n      this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n      var ctx = new ContextLayer(this.ctx);\r\n      this.ctxStack.push(this.ctx);\r\n      this.ctx = ctx;\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Returns previously saved path state and attributes\r\n   *\r\n   * @name restore\r\n   * @function\r\n   */\r\n  Context2D.prototype.restore = function(doStackPop) {\r\n    doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n    var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n    for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n      this.pdf.setPage(i + 1);\r\n      this.pdf.internal.out(\"Q\");\r\n    }\r\n    this.pdf.setPage(tmpPageNumber);\r\n\r\n    if (doStackPop && this.ctxStack.length !== 0) {\r\n      this.ctx = this.ctxStack.pop();\r\n      this.fillStyle = this.ctx.fillStyle;\r\n      this.strokeStyle = this.ctx.strokeStyle;\r\n      this.font = this.ctx.font;\r\n      this.lineCap = this.ctx.lineCap;\r\n      this.lineWidth = this.ctx.lineWidth;\r\n      this.lineJoin = this.ctx.lineJoin;\r\n      this.lineDash = this.ctx.lineDash;\r\n      this.lineDashOffset = this.ctx.lineDashOffset;\r\n    }\r\n  };\r\n\r\n  /**\r\n   * @name toDataURL\r\n   * @function\r\n   */\r\n  Context2D.prototype.toDataURL = function() {\r\n    throw new Error(\"toDataUrl not implemented.\");\r\n  };\r\n\r\n  //helper functions\r\n\r\n  /**\r\n   * Get the decimal values of r, g, b and a\r\n   *\r\n   * @name getRGBA\r\n   * @function\r\n   * @private\r\n   * @ignore\r\n   */\r\n  var getRGBA = function(style) {\r\n    var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n    var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n    var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n    var r, g, b, a;\r\n\r\n    if (style.isCanvasGradient === true) {\r\n      style = style.getColor();\r\n    }\r\n\r\n    if (!style) {\r\n      return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n    }\r\n\r\n    if (rxTransparent.test(style)) {\r\n      r = 0;\r\n      g = 0;\r\n      b = 0;\r\n      a = 0;\r\n    } else {\r\n      var matches = rxRgb.exec(style);\r\n      if (matches !== null) {\r\n        r = parseInt(matches[1]);\r\n        g = parseInt(matches[2]);\r\n        b = parseInt(matches[3]);\r\n        a = 1;\r\n      } else {\r\n        matches = rxRgba.exec(style);\r\n        if (matches !== null) {\r\n          r = parseInt(matches[1]);\r\n          g = parseInt(matches[2]);\r\n          b = parseInt(matches[3]);\r\n          a = parseFloat(matches[4]);\r\n        } else {\r\n          a = 1;\r\n\r\n          if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n            var rgbColor = new RGBColor(style);\r\n            if (rgbColor.ok) {\r\n              style = rgbColor.toHex();\r\n            } else {\r\n              style = \"#000000\";\r\n            }\r\n          }\r\n\r\n          if (style.length === 4) {\r\n            r = style.substring(1, 2);\r\n            r += r;\r\n            g = style.substring(2, 3);\r\n            g += g;\r\n            b = style.substring(3, 4);\r\n            b += b;\r\n          } else {\r\n            r = style.substring(1, 3);\r\n            g = style.substring(3, 5);\r\n            b = style.substring(5, 7);\r\n          }\r\n          r = parseInt(r, 16);\r\n          g = parseInt(g, 16);\r\n          b = parseInt(b, 16);\r\n        }\r\n      }\r\n    }\r\n    return { r: r, g: g, b: b, a: a, style: style };\r\n  };\r\n\r\n  /**\r\n   * @name isFillTransparent\r\n   * @function\r\n   * @private\r\n   * @ignore\r\n   * @returns {Boolean}\r\n   */\r\n  var isFillTransparent = function() {\r\n    return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n  };\r\n\r\n  /**\r\n   * @name isStrokeTransparent\r\n   * @function\r\n   * @private\r\n   * @ignore\r\n   * @returns {Boolean}\r\n   */\r\n  var isStrokeTransparent = function() {\r\n    return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n  };\r\n\r\n  /**\r\n   * Draws \"filled\" text on the canvas\r\n   *\r\n   * @name fillText\r\n   * @function\r\n   * @param text {String} Specifies the text that will be written on the canvas\r\n   * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n   * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n   * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n   * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n   */\r\n  Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n    if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n      console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n    }\r\n    maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n    if (isFillTransparent.call(this)) {\r\n      return;\r\n    }\r\n\r\n    var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n    // We only use X axis as scale hint\r\n    var scale = this.ctx.transform.scaleX;\r\n\r\n    putText.call(this, {\r\n      text: text,\r\n      x: x,\r\n      y: y,\r\n      scale: scale,\r\n      angle: degs,\r\n      align: this.textAlign,\r\n      maxWidth: maxWidth\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Draws text on the canvas (no fill)\r\n   *\r\n   * @name strokeText\r\n   * @function\r\n   * @param text {String} Specifies the text that will be written on the canvas\r\n   * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n   * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n   * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n   * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n   */\r\n  Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n    if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n      console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n    }\r\n    if (isStrokeTransparent.call(this)) {\r\n      return;\r\n    }\r\n\r\n    maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n    var degs = rad2deg(this.ctx.transform.rotation);\r\n    var scale = this.ctx.transform.scaleX;\r\n\r\n    putText.call(this, {\r\n      text: text,\r\n      x: x,\r\n      y: y,\r\n      scale: scale,\r\n      renderingMode: \"stroke\",\r\n      angle: degs,\r\n      align: this.textAlign,\r\n      maxWidth: maxWidth\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Returns an object that contains the width of the specified text\r\n   *\r\n   * @name measureText\r\n   * @function\r\n   * @param text {String} The text to be measured\r\n   * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n   * @returns {Number}\r\n   */\r\n  Context2D.prototype.measureText = function(text) {\r\n    if (typeof text !== \"string\") {\r\n      console.error(\r\n        \"jsPDF.context2d.measureText: Invalid arguments\",\r\n        arguments\r\n      );\r\n      throw new Error(\r\n        \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n      );\r\n    }\r\n    var pdf = this.pdf;\r\n    var k = this.pdf.internal.scaleFactor;\r\n\r\n    var fontSize = pdf.internal.getFontSize();\r\n    var txtWidth =\r\n      (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n    txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n    var TextMetrics = function(options) {\r\n      options = options || {};\r\n      var _width = options.width || 0;\r\n      Object.defineProperty(this, \"width\", {\r\n        get: function() {\r\n          return _width;\r\n        }\r\n      });\r\n      return this;\r\n    };\r\n    return new TextMetrics({ width: txtWidth });\r\n  };\r\n\r\n  //Transformations\r\n\r\n  /**\r\n   * Scales the current drawing bigger or smaller\r\n   *\r\n   * @name scale\r\n   * @function\r\n   * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n   * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n   * @description The scale() method scales the current drawing, bigger or smaller.\r\n   */\r\n  Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n    if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n      console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n    }\r\n    var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n  };\r\n\r\n  /**\r\n   * Rotates the current drawing\r\n   *\r\n   * @name rotate\r\n   * @function\r\n   * @param angle {Number} The rotation angle, in radians.\r\n   * @description To calculate from degrees to radians: degrees*Math.PI/180. <br />\r\n   * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n   */\r\n  Context2D.prototype.rotate = function(angle) {\r\n    if (isNaN(angle)) {\r\n      console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n    }\r\n    var matrix = new Matrix(\r\n      Math.cos(angle),\r\n      Math.sin(angle),\r\n      -Math.sin(angle),\r\n      Math.cos(angle),\r\n      0.0,\r\n      0.0\r\n    );\r\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n  };\r\n\r\n  /**\r\n   * Remaps the (0,0) position on the canvas\r\n   *\r\n   * @name translate\r\n   * @function\r\n   * @param x {Number} The value to add to horizontal (x) coordinates\r\n   * @param y {Number} The value to add to vertical (y) coordinates\r\n   * @description The translate() method remaps the (0,0) position on the canvas.\r\n   */\r\n  Context2D.prototype.translate = function(x, y) {\r\n    if (isNaN(x) || isNaN(y)) {\r\n      console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n    }\r\n    var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n  };\r\n\r\n  /**\r\n   * Replaces the current transformation matrix for the drawing\r\n   *\r\n   * @name transform\r\n   * @function\r\n   * @param a {Number} Horizontal scaling\r\n   * @param b {Number} Horizontal skewing\r\n   * @param c {Number} Vertical skewing\r\n   * @param d {Number} Vertical scaling\r\n   * @param e {Number} Horizontal moving\r\n   * @param f {Number} Vertical moving\r\n   * @description Each object on the canvas has a current transformation matrix.<br /><br />The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:<br /><br /><br /><br />a    c    e<br /><br />b    d    f<br /><br />0    0    1<br /><br />In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n   */\r\n  Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n    if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n      console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n    }\r\n    var matrix = new Matrix(a, b, c, d, e, f);\r\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n  };\r\n\r\n  /**\r\n   * Resets the current transform to the identity matrix. Then runs transform()\r\n   *\r\n   * @name setTransform\r\n   * @function\r\n   * @param a {Number} Horizontal scaling\r\n   * @param b {Number} Horizontal skewing\r\n   * @param c {Number} Vertical skewing\r\n   * @param d {Number} Vertical scaling\r\n   * @param e {Number} Horizontal moving\r\n   * @param f {Number} Vertical moving\r\n   * @description Each object on the canvas has a current transformation matrix. <br /><br />The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.<br /><br />In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n   */\r\n  Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n    a = isNaN(a) ? 1 : a;\r\n    b = isNaN(b) ? 0 : b;\r\n    c = isNaN(c) ? 0 : c;\r\n    d = isNaN(d) ? 1 : d;\r\n    e = isNaN(e) ? 0 : e;\r\n    f = isNaN(f) ? 0 : f;\r\n    this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n  };\r\n\r\n  /**\r\n   * Should only be used if pageWrapYEnabled is true\r\n   *\r\n   * @name setPageByYPosition\r\n   * @function\r\n   * @private\r\n   * @ignore\r\n   * @returns One-based Page Number\r\n   */\r\n  var setPageByYPosition = function(y) {\r\n    if (this.pageWrapYEnabled) {\r\n      this.lastBreak = 0;\r\n      var manualBreaks = 0;\r\n      var autoBreaks = 0;\r\n      for (var i = 0; i < this.pageBreaks.length; i++) {\r\n        if (y >= this.pageBreaks[i]) {\r\n          manualBreaks++;\r\n          if (this.lastBreak === 0) {\r\n            autoBreaks++;\r\n          }\r\n          var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n          this.lastBreak = this.pageBreaks[i];\r\n          var pagesSinceLastBreak = Math.floor(\r\n            spaceBetweenLastBreak / this.pageWrapY\r\n          );\r\n          autoBreaks += pagesSinceLastBreak;\r\n        }\r\n      }\r\n      if (this.lastBreak === 0) {\r\n        var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n        autoBreaks += pagesSinceLastBreak;\r\n      }\r\n      return autoBreaks + manualBreaks;\r\n    } else {\r\n      return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n    }\r\n  };\r\n\r\n  var hasMargins = function() {\r\n    return (\r\n      this.margin[0] > 0 ||\r\n      this.margin[1] > 0 ||\r\n      this.margin[2] > 0 ||\r\n      this.margin[3] > 0\r\n    );\r\n  };\r\n\r\n  /**\r\n   * Draws an image, canvas, or video onto the canvas\r\n   *\r\n   * @function\r\n   * @param img {} Specifies the image, canvas, or video element to use\r\n   * @param sx {Number} Optional. The x coordinate where to start clipping\r\n   * @param sy {Number} Optional. The y coordinate where to start clipping\r\n   * @param swidth {Number} Optional. The width of the clipped image\r\n   * @param sheight {Number} Optional. The height of the clipped image\r\n   * @param x {Number} The x coordinate where to place the image on the canvas\r\n   * @param y {Number} The y coordinate where to place the image on the canvas\r\n   * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n   * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n   */\r\n  Context2D.prototype.drawImage = function(\r\n    img,\r\n    sx,\r\n    sy,\r\n    swidth,\r\n    sheight,\r\n    x,\r\n    y,\r\n    width,\r\n    height\r\n  ) {\r\n    var imageProperties = this.pdf.getImageProperties(img);\r\n    var factorX = 1;\r\n    var factorY = 1;\r\n    var isClip;\r\n\r\n    var clipFactorX = 1;\r\n    var clipFactorY = 1;\r\n\r\n    if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n      isClip = true;\r\n      clipFactorX = width / swidth;\r\n      clipFactorY = height / sheight;\r\n      factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n      factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n    }\r\n\r\n    //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n    if (typeof x === \"undefined\") {\r\n      x = sx;\r\n      y = sy;\r\n      sx = 0;\r\n      sy = 0;\r\n    }\r\n\r\n    if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n      width = swidth;\r\n      height = sheight;\r\n    }\r\n    if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n      width = imageProperties.width;\r\n      height = imageProperties.height;\r\n    }\r\n\r\n    var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n    var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n    var matrix = new Matrix();\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n    var xRect = matrix.applyToRectangle(\r\n      new Rectangle(\r\n        x - sx * clipFactorX,\r\n        y - sy * clipFactorY,\r\n        swidth * factorX,\r\n        sheight * factorY\r\n      )\r\n    );\r\n    var pageArray = getPagesByPath.call(this, xRect);\r\n    var pages = [];\r\n    for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n      if (pages.indexOf(pageArray[ii]) === -1) {\r\n        pages.push(pageArray[ii]);\r\n      }\r\n    }\r\n\r\n    sortPages(pages);\r\n\r\n    var clipPath;\r\n    if (this.autoPaging) {\r\n      var min = pages[0];\r\n      var max = pages[pages.length - 1];\r\n      for (var i = min; i < max + 1; i++) {\r\n        this.pdf.setPage(i);\r\n\r\n        var pageWidthMinusMargins =\r\n          this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n        var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n        var firstPageHeight =\r\n          this.pdf.internal.pageSize.height -\r\n          this.posY -\r\n          this.margin[0] -\r\n          this.margin[2];\r\n        var pageHeightMinusMargins =\r\n          this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n        var previousPageHeightSum =\r\n          i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n        if (this.ctx.clip_path.length !== 0) {\r\n          var tmpPaths = this.path;\r\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n          this.path = pathPositionRedo(\r\n            clipPath,\r\n            this.posX + this.margin[3],\r\n            -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n          );\r\n          drawPaths.call(this, \"fill\", true);\r\n          this.path = tmpPaths;\r\n        }\r\n        var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n        tmpRect = pathPositionRedo(\r\n          [tmpRect],\r\n          this.posX + this.margin[3],\r\n          -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n        )[0];\r\n\r\n        const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n        if (needsClipping) {\r\n          this.pdf.saveGraphicsState();\r\n          this.pdf\r\n            .rect(\r\n              this.margin[3],\r\n              this.margin[0],\r\n              pageWidthMinusMargins,\r\n              pageHeightMinusMargins,\r\n              null\r\n            )\r\n            .clip()\r\n            .discardPath();\r\n        }\r\n        this.pdf.addImage(\r\n          img,\r\n          \"JPEG\",\r\n          tmpRect.x,\r\n          tmpRect.y,\r\n          tmpRect.w,\r\n          tmpRect.h,\r\n          null,\r\n          null,\r\n          angle\r\n        );\r\n        if (needsClipping) {\r\n          this.pdf.restoreGraphicsState();\r\n        }\r\n      }\r\n    } else {\r\n      this.pdf.addImage(\r\n        img,\r\n        \"JPEG\",\r\n        xRect.x,\r\n        xRect.y,\r\n        xRect.w,\r\n        xRect.h,\r\n        null,\r\n        null,\r\n        angle\r\n      );\r\n    }\r\n  };\r\n\r\n  var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n    var result = [];\r\n    pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n    pageWrapY =\r\n      pageWrapY ||\r\n      this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n    var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n    switch (path.type) {\r\n      default:\r\n      case \"mt\":\r\n      case \"lt\":\r\n        result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n        break;\r\n      case \"arc\":\r\n        result.push(\r\n          Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n        );\r\n        result.push(\r\n          Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n        );\r\n        break;\r\n      case \"qct\":\r\n        var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n          this.ctx.lastPoint.x,\r\n          this.ctx.lastPoint.y,\r\n          path.x1,\r\n          path.y1,\r\n          path.x,\r\n          path.y\r\n        );\r\n        result.push(\r\n          Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n        );\r\n        result.push(\r\n          Math.floor(\r\n            (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n              pageWrapY\r\n          ) + 1\r\n        );\r\n        break;\r\n      case \"bct\":\r\n        var rectOfBezierCurve = getBezierCurveBoundary(\r\n          this.ctx.lastPoint.x,\r\n          this.ctx.lastPoint.y,\r\n          path.x1,\r\n          path.y1,\r\n          path.x2,\r\n          path.y2,\r\n          path.x,\r\n          path.y\r\n        );\r\n        result.push(\r\n          Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n        );\r\n        result.push(\r\n          Math.floor(\r\n            (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n          ) + 1\r\n        );\r\n        break;\r\n      case \"rect\":\r\n        result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n        result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n    }\r\n\r\n    for (var i = 0; i < result.length; i += 1) {\r\n      while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n        addPage.call(this);\r\n      }\r\n    }\r\n    return result;\r\n  };\r\n\r\n  var addPage = function() {\r\n    var fillStyle = this.fillStyle;\r\n    var strokeStyle = this.strokeStyle;\r\n    var font = this.font;\r\n    var lineCap = this.lineCap;\r\n    var lineWidth = this.lineWidth;\r\n    var lineJoin = this.lineJoin;\r\n    this.pdf.addPage();\r\n    this.fillStyle = fillStyle;\r\n    this.strokeStyle = strokeStyle;\r\n    this.font = font;\r\n    this.lineCap = lineCap;\r\n    this.lineWidth = lineWidth;\r\n    this.lineJoin = lineJoin;\r\n  };\r\n\r\n  var pathPositionRedo = function(paths, x, y) {\r\n    for (var i = 0; i < paths.length; i++) {\r\n      switch (paths[i].type) {\r\n        case \"bct\":\r\n          paths[i].x2 += x;\r\n          paths[i].y2 += y;\r\n        case \"qct\":\r\n          paths[i].x1 += x;\r\n          paths[i].y1 += y;\r\n        case \"mt\":\r\n        case \"lt\":\r\n        case \"arc\":\r\n        default:\r\n          paths[i].x += x;\r\n          paths[i].y += y;\r\n      }\r\n    }\r\n    return paths;\r\n  };\r\n\r\n  var sortPages = function(pages) {\r\n    return pages.sort(function(a, b) {\r\n      return a - b;\r\n    });\r\n  };\r\n\r\n  var pathPreProcess = function(rule, isClip) {\r\n    var fillStyle = this.fillStyle;\r\n    var strokeStyle = this.strokeStyle;\r\n    var lineCap = this.lineCap;\r\n    var oldLineWidth = this.lineWidth;\r\n    var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n    var lineJoin = this.lineJoin;\r\n\r\n    var origPath = JSON.parse(JSON.stringify(this.path));\r\n    var xPath = JSON.parse(JSON.stringify(this.path));\r\n    var clipPath;\r\n    var tmpPath;\r\n    var pages = [];\r\n\r\n    for (var i = 0; i < xPath.length; i++) {\r\n      if (typeof xPath[i].x !== \"undefined\") {\r\n        var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n        for (var ii = 0; ii < page.length; ii += 1) {\r\n          if (pages.indexOf(page[ii]) === -1) {\r\n            pages.push(page[ii]);\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    for (var j = 0; j < pages.length; j++) {\r\n      while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n        addPage.call(this);\r\n      }\r\n    }\r\n    sortPages(pages);\r\n\r\n    if (this.autoPaging) {\r\n      var min = pages[0];\r\n      var max = pages[pages.length - 1];\r\n      for (var k = min; k < max + 1; k++) {\r\n        this.pdf.setPage(k);\r\n\r\n        this.fillStyle = fillStyle;\r\n        this.strokeStyle = strokeStyle;\r\n        this.lineCap = lineCap;\r\n        this.lineWidth = lineWidth;\r\n        this.lineJoin = lineJoin;\r\n\r\n        var pageWidthMinusMargins =\r\n          this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n        var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n        var firstPageHeight =\r\n          this.pdf.internal.pageSize.height -\r\n          this.posY -\r\n          this.margin[0] -\r\n          this.margin[2];\r\n        var pageHeightMinusMargins =\r\n          this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n        var previousPageHeightSum =\r\n          k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n        if (this.ctx.clip_path.length !== 0) {\r\n          var tmpPaths = this.path;\r\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n          this.path = pathPositionRedo(\r\n            clipPath,\r\n            this.posX + this.margin[3],\r\n            -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n          );\r\n          drawPaths.call(this, rule, true);\r\n          this.path = tmpPaths;\r\n        }\r\n        tmpPath = JSON.parse(JSON.stringify(origPath));\r\n        this.path = pathPositionRedo(\r\n          tmpPath,\r\n          this.posX + this.margin[3],\r\n          -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n        );\r\n        if (isClip === false || k === 0) {\r\n          const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n          if (needsClipping) {\r\n            this.pdf.saveGraphicsState();\r\n            this.pdf\r\n              .rect(\r\n                this.margin[3],\r\n                this.margin[0],\r\n                pageWidthMinusMargins,\r\n                pageHeightMinusMargins,\r\n                null\r\n              )\r\n              .clip()\r\n              .discardPath();\r\n          }\r\n          drawPaths.call(this, rule, isClip);\r\n          if (needsClipping) {\r\n            this.pdf.restoreGraphicsState();\r\n          }\r\n        }\r\n        this.lineWidth = oldLineWidth;\r\n      }\r\n    } else {\r\n      this.lineWidth = lineWidth;\r\n      drawPaths.call(this, rule, isClip);\r\n      this.lineWidth = oldLineWidth;\r\n    }\r\n    this.path = origPath;\r\n  };\r\n\r\n  /**\r\n   * Processes the paths\r\n   *\r\n   * @function\r\n   * @param rule {String}\r\n   * @param isClip {Boolean}\r\n   * @private\r\n   * @ignore\r\n   */\r\n  var drawPaths = function(rule, isClip) {\r\n    if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n      return;\r\n    }\r\n\r\n    if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n      return;\r\n    }\r\n\r\n    var moves = [];\r\n\r\n    //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n    var delta;\r\n    var xPath = this.path;\r\n    for (var i = 0; i < xPath.length; i++) {\r\n      var pt = xPath[i];\r\n\r\n      switch (pt.type) {\r\n        case \"begin\":\r\n          moves.push({\r\n            begin: true\r\n          });\r\n          break;\r\n\r\n        case \"close\":\r\n          moves.push({\r\n            close: true\r\n          });\r\n          break;\r\n\r\n        case \"mt\":\r\n          moves.push({\r\n            start: pt,\r\n            deltas: [],\r\n            abs: []\r\n          });\r\n          break;\r\n\r\n        case \"lt\":\r\n          var iii = moves.length;\r\n          if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n            delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n            if (iii > 0) {\r\n              for (iii; iii >= 0; iii--) {\r\n                if (\r\n                  moves[iii - 1].close !== true &&\r\n                  moves[iii - 1].begin !== true\r\n                ) {\r\n                  moves[iii - 1].deltas.push(delta);\r\n                  moves[iii - 1].abs.push(pt);\r\n                  break;\r\n                }\r\n              }\r\n            }\r\n          }\r\n          break;\r\n\r\n        case \"bct\":\r\n          delta = [\r\n            pt.x1 - xPath[i - 1].x,\r\n            pt.y1 - xPath[i - 1].y,\r\n            pt.x2 - xPath[i - 1].x,\r\n            pt.y2 - xPath[i - 1].y,\r\n            pt.x - xPath[i - 1].x,\r\n            pt.y - xPath[i - 1].y\r\n          ];\r\n          moves[moves.length - 1].deltas.push(delta);\r\n          break;\r\n\r\n        case \"qct\":\r\n          var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n          var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n          var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n          var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n          var x3 = pt.x;\r\n          var y3 = pt.y;\r\n          delta = [\r\n            x1 - xPath[i - 1].x,\r\n            y1 - xPath[i - 1].y,\r\n            x2 - xPath[i - 1].x,\r\n            y2 - xPath[i - 1].y,\r\n            x3 - xPath[i - 1].x,\r\n            y3 - xPath[i - 1].y\r\n          ];\r\n          moves[moves.length - 1].deltas.push(delta);\r\n          break;\r\n\r\n        case \"arc\":\r\n          moves.push({\r\n            deltas: [],\r\n            abs: [],\r\n            arc: true\r\n          });\r\n\r\n          if (Array.isArray(moves[moves.length - 1].abs)) {\r\n            moves[moves.length - 1].abs.push(pt);\r\n          }\r\n          break;\r\n      }\r\n    }\r\n    var style;\r\n    if (!isClip) {\r\n      if (rule === \"stroke\") {\r\n        style = \"stroke\";\r\n      } else {\r\n        style = \"fill\";\r\n      }\r\n    } else {\r\n      style = null;\r\n    }\r\n\r\n    var began = false;\r\n    for (var k = 0; k < moves.length; k++) {\r\n      if (moves[k].arc) {\r\n        var arcs = moves[k].abs;\r\n\r\n        for (var ii = 0; ii < arcs.length; ii++) {\r\n          var arc = arcs[ii];\r\n\r\n          if (arc.type === \"arc\") {\r\n            drawArc.call(\r\n              this,\r\n              arc.x,\r\n              arc.y,\r\n              arc.radius,\r\n              arc.startAngle,\r\n              arc.endAngle,\r\n              arc.counterclockwise,\r\n              undefined,\r\n              isClip,\r\n              !began\r\n            );\r\n          } else {\r\n            drawLine.call(this, arc.x, arc.y);\r\n          }\r\n          began = true;\r\n        }\r\n      } else if (moves[k].close === true) {\r\n        this.pdf.internal.out(\"h\");\r\n        began = false;\r\n      } else if (moves[k].begin !== true) {\r\n        var x = moves[k].start.x;\r\n        var y = moves[k].start.y;\r\n        drawLines.call(this, moves[k].deltas, x, y);\r\n        began = true;\r\n      }\r\n    }\r\n\r\n    if (style) {\r\n      putStyle.call(this, style);\r\n    }\r\n    if (isClip) {\r\n      doClip.call(this);\r\n    }\r\n  };\r\n\r\n  var getBaseline = function(y) {\r\n    var height =\r\n      this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n    var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n    switch (this.ctx.textBaseline) {\r\n      case \"bottom\":\r\n        return y - descent;\r\n      case \"top\":\r\n        return y + height - descent;\r\n      case \"hanging\":\r\n        return y + height - 2 * descent;\r\n      case \"middle\":\r\n        return y + height / 2 - descent;\r\n      case \"ideographic\":\r\n        // TODO not implemented\r\n        return y;\r\n      case \"alphabetic\":\r\n      default:\r\n        return y;\r\n    }\r\n  };\r\n\r\n  var getTextBottom = function(yBaseLine) {\r\n    var height =\r\n      this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n    var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n    return yBaseLine + descent;\r\n  };\r\n\r\n  Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n    var canvasGradient = function canvasGradient() {};\r\n\r\n    canvasGradient.colorStops = [];\r\n    canvasGradient.addColorStop = function(offset, color) {\r\n      this.colorStops.push([offset, color]);\r\n    };\r\n\r\n    canvasGradient.getColor = function() {\r\n      if (this.colorStops.length === 0) {\r\n        return \"#000000\";\r\n      }\r\n\r\n      return this.colorStops[0][1];\r\n    };\r\n\r\n    canvasGradient.isCanvasGradient = true;\r\n    return canvasGradient;\r\n  };\r\n  Context2D.prototype.createPattern = function createPattern() {\r\n    return this.createLinearGradient();\r\n  };\r\n  Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n    return this.createLinearGradient();\r\n  };\r\n\r\n  /**\r\n   *\r\n   * @param x Edge point X\r\n   * @param y Edge point Y\r\n   * @param r Radius\r\n   * @param a1 start angle\r\n   * @param a2 end angle\r\n   * @param counterclockwise\r\n   * @param style\r\n   * @param isClip\r\n   */\r\n  var drawArc = function(\r\n    x,\r\n    y,\r\n    r,\r\n    a1,\r\n    a2,\r\n    counterclockwise,\r\n    style,\r\n    isClip,\r\n    includeMove\r\n  ) {\r\n    // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n    var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n    for (var i = 0; i < curves.length; i++) {\r\n      var curve = curves[i];\r\n      if (i === 0) {\r\n        if (includeMove) {\r\n          doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n        } else {\r\n          drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n        }\r\n      }\r\n      drawCurve.call(\r\n        this,\r\n        x,\r\n        y,\r\n        curve.x2,\r\n        curve.y2,\r\n        curve.x3,\r\n        curve.y3,\r\n        curve.x4,\r\n        curve.y4\r\n      );\r\n    }\r\n\r\n    if (!isClip) {\r\n      putStyle.call(this, style);\r\n    } else {\r\n      doClip.call(this);\r\n    }\r\n  };\r\n\r\n  var putStyle = function(style) {\r\n    switch (style) {\r\n      case \"stroke\":\r\n        this.pdf.internal.out(\"S\");\r\n        break;\r\n      case \"fill\":\r\n        this.pdf.internal.out(\"f\");\r\n        break;\r\n    }\r\n  };\r\n\r\n  var doClip = function() {\r\n    this.pdf.clip();\r\n    this.pdf.discardPath();\r\n  };\r\n\r\n  var doMove = function(x, y) {\r\n    this.pdf.internal.out(\r\n      getHorizontalCoordinateString(x) +\r\n        \" \" +\r\n        getVerticalCoordinateString(y) +\r\n        \" m\"\r\n    );\r\n  };\r\n\r\n  var putText = function(options) {\r\n    var textAlign;\r\n    switch (options.align) {\r\n      case \"right\":\r\n      case \"end\":\r\n        textAlign = \"right\";\r\n        break;\r\n      case \"center\":\r\n        textAlign = \"center\";\r\n        break;\r\n      case \"left\":\r\n      case \"start\":\r\n      default:\r\n        textAlign = \"left\";\r\n        break;\r\n    }\r\n\r\n    var textDimensions = this.pdf.getTextDimensions(options.text);\r\n    var yBaseLine = getBaseline.call(this, options.y);\r\n    var yBottom = getTextBottom.call(this, yBaseLine);\r\n    var yTop = yBottom - textDimensions.h;\r\n\r\n    var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n    var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n    var matrix = new Matrix();\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n    matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n    var baselineRect = this.ctx.transform.applyToRectangle(\r\n      new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n    );\r\n    var textBounds = matrix.applyToRectangle(\r\n      new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n    );\r\n    var pageArray = getPagesByPath.call(this, textBounds);\r\n    var pages = [];\r\n    for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n      if (pages.indexOf(pageArray[ii]) === -1) {\r\n        pages.push(pageArray[ii]);\r\n      }\r\n    }\r\n\r\n    sortPages(pages);\r\n\r\n    var clipPath, oldSize, oldLineWidth;\r\n    if (this.autoPaging) {\r\n      var min = pages[0];\r\n      var max = pages[pages.length - 1];\r\n      for (var i = min; i < max + 1; i++) {\r\n        this.pdf.setPage(i);\r\n\r\n        var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n        var firstPageHeight =\r\n          this.pdf.internal.pageSize.height -\r\n          this.posY -\r\n          this.margin[0] -\r\n          this.margin[2];\r\n        var pageHeightMinusBottomMargin =\r\n          this.pdf.internal.pageSize.height - this.margin[2];\r\n        var pageHeightMinusMargins =\r\n          pageHeightMinusBottomMargin - this.margin[0];\r\n        var pageWidthMinusRightMargin =\r\n          this.pdf.internal.pageSize.width - this.margin[1];\r\n        var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n        var previousPageHeightSum =\r\n          i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n        if (this.ctx.clip_path.length !== 0) {\r\n          var tmpPaths = this.path;\r\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n          this.path = pathPositionRedo(\r\n            clipPath,\r\n            this.posX + this.margin[3],\r\n            -1 * previousPageHeightSum + topMargin\r\n          );\r\n          drawPaths.call(this, \"fill\", true);\r\n          this.path = tmpPaths;\r\n        }\r\n        var textBoundsOnPage = pathPositionRedo(\r\n          [JSON.parse(JSON.stringify(textBounds))],\r\n          this.posX + this.margin[3],\r\n          -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n        )[0];\r\n\r\n        if (options.scale >= 0.01) {\r\n          oldSize = this.pdf.internal.getFontSize();\r\n          this.pdf.setFontSize(oldSize * options.scale);\r\n          oldLineWidth = this.lineWidth;\r\n          this.lineWidth = oldLineWidth * options.scale;\r\n        }\r\n\r\n        var doSlice = this.autoPaging !== \"text\";\r\n\r\n        if (\r\n          doSlice ||\r\n          textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n        ) {\r\n          if (\r\n            doSlice ||\r\n            (textBoundsOnPage.y >= topMargin &&\r\n              textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n          ) {\r\n            var croppedText = doSlice\r\n              ? options.text\r\n              : this.pdf.splitTextToSize(\r\n                  options.text,\r\n                  options.maxWidth ||\r\n                    pageWidthMinusRightMargin - textBoundsOnPage.x\r\n                )[0];\r\n            var baseLineRectOnPage = pathPositionRedo(\r\n              [JSON.parse(JSON.stringify(baselineRect))],\r\n              this.posX + this.margin[3],\r\n              -previousPageHeightSum +\r\n                topMargin +\r\n                this.ctx.prevPageLastElemOffset\r\n            )[0];\r\n\r\n            const needsClipping =\r\n              doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n            if (needsClipping) {\r\n              this.pdf.saveGraphicsState();\r\n              this.pdf\r\n                .rect(\r\n                  this.margin[3],\r\n                  this.margin[0],\r\n                  pageWidthMinusMargins,\r\n                  pageHeightMinusMargins,\r\n                  null\r\n                )\r\n                .clip()\r\n                .discardPath();\r\n            }\r\n\r\n            this.pdf.text(\r\n              croppedText,\r\n              baseLineRectOnPage.x,\r\n              baseLineRectOnPage.y,\r\n              {\r\n                angle: options.angle,\r\n                align: textAlign,\r\n                renderingMode: options.renderingMode\r\n              }\r\n            );\r\n\r\n            if (needsClipping) {\r\n              this.pdf.restoreGraphicsState();\r\n            }\r\n          }\r\n        } else {\r\n          // This text is the last element of the page, but it got cut off due to the margin\r\n          // so we render it in the next page\r\n\r\n          if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n            // As a result, all other elements have their y offset increased\r\n            this.ctx.prevPageLastElemOffset +=\r\n              pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n          }\r\n        }\r\n\r\n        if (options.scale >= 0.01) {\r\n          this.pdf.setFontSize(oldSize);\r\n          this.lineWidth = oldLineWidth;\r\n        }\r\n      }\r\n    } else {\r\n      if (options.scale >= 0.01) {\r\n        oldSize = this.pdf.internal.getFontSize();\r\n        this.pdf.setFontSize(oldSize * options.scale);\r\n        oldLineWidth = this.lineWidth;\r\n        this.lineWidth = oldLineWidth * options.scale;\r\n      }\r\n      this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n        angle: options.angle,\r\n        align: textAlign,\r\n        renderingMode: options.renderingMode,\r\n        maxWidth: options.maxWidth\r\n      });\r\n\r\n      if (options.scale >= 0.01) {\r\n        this.pdf.setFontSize(oldSize);\r\n        this.lineWidth = oldLineWidth;\r\n      }\r\n    }\r\n  };\r\n\r\n  var drawLine = function(x, y, prevX, prevY) {\r\n    prevX = prevX || 0;\r\n    prevY = prevY || 0;\r\n\r\n    this.pdf.internal.out(\r\n      getHorizontalCoordinateString(x + prevX) +\r\n        \" \" +\r\n        getVerticalCoordinateString(y + prevY) +\r\n        \" l\"\r\n    );\r\n  };\r\n\r\n  var drawLines = function(lines, x, y) {\r\n    return this.pdf.lines(lines, x, y, null, null);\r\n  };\r\n\r\n  var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n    this.pdf.internal.out(\r\n      [\r\n        f2(getHorizontalCoordinate(x1 + x)),\r\n        f2(getVerticalCoordinate(y1 + y)),\r\n        f2(getHorizontalCoordinate(x2 + x)),\r\n        f2(getVerticalCoordinate(y2 + y)),\r\n        f2(getHorizontalCoordinate(x3 + x)),\r\n        f2(getVerticalCoordinate(y3 + y)),\r\n        \"c\"\r\n      ].join(\" \")\r\n    );\r\n  };\r\n\r\n  /**\r\n   * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n   *\r\n   * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n   * @function createArc\r\n   */\r\n  var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n    var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n    var twoPi = Math.PI * 2;\r\n    var halfPi = Math.PI / 2.0;\r\n\r\n    while (startAngle > endAngle) {\r\n      startAngle = startAngle - twoPi;\r\n    }\r\n    var totalAngle = Math.abs(endAngle - startAngle);\r\n    if (totalAngle < twoPi) {\r\n      if (anticlockwise) {\r\n        totalAngle = twoPi - totalAngle;\r\n      }\r\n    }\r\n\r\n    // Compute the sequence of arc curves, up to PI/2 at a time.\r\n    var curves = [];\r\n\r\n    // clockwise or counterclockwise\r\n    var sgn = anticlockwise ? -1 : +1;\r\n\r\n    var a1 = startAngle;\r\n    for (; totalAngle > EPSILON; ) {\r\n      var remain = sgn * Math.min(totalAngle, halfPi);\r\n      var a2 = a1 + remain;\r\n      curves.push(createSmallArc.call(this, radius, a1, a2));\r\n      totalAngle -= Math.abs(a2 - a1);\r\n      a1 = a2;\r\n    }\r\n\r\n    return curves;\r\n  };\r\n\r\n  /**\r\n   * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n   *\r\n   * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n   *\r\n   * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n   */\r\n  var createSmallArc = function(r, a1, a2) {\r\n    var a = (a2 - a1) / 2.0;\r\n\r\n    var x4 = r * Math.cos(a);\r\n    var y4 = r * Math.sin(a);\r\n    var x1 = x4;\r\n    var y1 = -y4;\r\n\r\n    var q1 = x1 * x1 + y1 * y1;\r\n    var q2 = q1 + x1 * x4 + y1 * y4;\r\n    var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n    var x2 = x1 - k2 * y1;\r\n    var y2 = y1 + k2 * x1;\r\n    var x3 = x2;\r\n    var y3 = -y2;\r\n\r\n    var ar = a + a1;\r\n    var cos_ar = Math.cos(ar);\r\n    var sin_ar = Math.sin(ar);\r\n\r\n    return {\r\n      x1: r * Math.cos(a1),\r\n      y1: r * Math.sin(a1),\r\n      x2: x2 * cos_ar - y2 * sin_ar,\r\n      y2: x2 * sin_ar + y2 * cos_ar,\r\n      x3: x3 * cos_ar - y3 * sin_ar,\r\n      y3: x3 * sin_ar + y3 * cos_ar,\r\n      x4: r * Math.cos(a2),\r\n      y4: r * Math.sin(a2)\r\n    };\r\n  };\r\n\r\n  var rad2deg = function(value) {\r\n    return (value * 180) / Math.PI;\r\n  };\r\n\r\n  var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n    var midX1 = sx + (cpx - sx) * 0.5;\r\n    var midY1 = sy + (cpy - sy) * 0.5;\r\n    var midX2 = ex + (cpx - ex) * 0.5;\r\n    var midY2 = ey + (cpy - ey) * 0.5;\r\n    var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n    var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n    var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n    var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n    return new Rectangle(\r\n      resultX1,\r\n      resultY1,\r\n      resultX2 - resultX1,\r\n      resultY2 - resultY1\r\n    );\r\n  };\r\n\r\n  //De Casteljau algorithm\r\n  var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n    var tobx = bx - ax;\r\n    var toby = by - ay;\r\n    var tocx = cx - bx;\r\n    var tocy = cy - by;\r\n    var todx = dx - cx;\r\n    var tody = dy - cy;\r\n    var precision = 40;\r\n    var d,\r\n      i,\r\n      px,\r\n      py,\r\n      qx,\r\n      qy,\r\n      rx,\r\n      ry,\r\n      tx,\r\n      ty,\r\n      sx,\r\n      sy,\r\n      x,\r\n      y,\r\n      minx,\r\n      miny,\r\n      maxx,\r\n      maxy,\r\n      toqx,\r\n      toqy,\r\n      torx,\r\n      tory,\r\n      totx,\r\n      toty;\r\n    for (i = 0; i < precision + 1; i++) {\r\n      d = i / precision;\r\n      px = ax + d * tobx;\r\n      py = ay + d * toby;\r\n      qx = bx + d * tocx;\r\n      qy = by + d * tocy;\r\n      rx = cx + d * todx;\r\n      ry = cy + d * tody;\r\n      toqx = qx - px;\r\n      toqy = qy - py;\r\n      torx = rx - qx;\r\n      tory = ry - qy;\r\n\r\n      sx = px + d * toqx;\r\n      sy = py + d * toqy;\r\n      tx = qx + d * torx;\r\n      ty = qy + d * tory;\r\n      totx = tx - sx;\r\n      toty = ty - sy;\r\n\r\n      x = sx + d * totx;\r\n      y = sy + d * toty;\r\n      if (i == 0) {\r\n        minx = x;\r\n        miny = y;\r\n        maxx = x;\r\n        maxy = y;\r\n      } else {\r\n        minx = Math.min(minx, x);\r\n        miny = Math.min(miny, y);\r\n        maxx = Math.max(maxx, x);\r\n        maxy = Math.max(maxy, y);\r\n      }\r\n    }\r\n    return new Rectangle(\r\n      Math.round(minx),\r\n      Math.round(miny),\r\n      Math.round(maxx - minx),\r\n      Math.round(maxy - miny)\r\n    );\r\n  };\r\n\r\n  var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n    return JSON.stringify({\r\n      lineDash: lineDash,\r\n      lineDashOffset: lineDashOffset\r\n    });\r\n  };\r\n\r\n  var setLineDash = function() {\r\n    // Avoid unnecessary line dash declarations.\r\n    if (\r\n      !this.prevLineDash &&\r\n      !this.ctx.lineDash.length &&\r\n      !this.ctx.lineDashOffset\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    // Avoid unnecessary line dash declarations.\r\n    const nextLineDash = getPrevLineDashValue(\r\n      this.ctx.lineDash,\r\n      this.ctx.lineDashOffset\r\n    );\r\n    if (this.prevLineDash !== nextLineDash) {\r\n      this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n      this.prevLineDash = nextLineDash;\r\n    }\r\n  };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var ASCII85Encode = function(a) {\n    var b, c, d, e, f, g, h, i, j, k;\n    // eslint-disable-next-line no-control-regex\n    for (\n      !/[^\\x00-\\xFF]/.test(a),\n        b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n        a += b,\n        c = [],\n        d = 0,\n        e = a.length;\n      e > d;\n      d += 4\n    )\n      (f =\n        (a.charCodeAt(d) << 24) +\n        (a.charCodeAt(d + 1) << 16) +\n        (a.charCodeAt(d + 2) << 8) +\n        a.charCodeAt(d + 3)),\n        0 !== f\n          ? ((k = f % 85),\n            (f = (f - k) / 85),\n            (j = f % 85),\n            (f = (f - j) / 85),\n            (i = f % 85),\n            (f = (f - i) / 85),\n            (h = f % 85),\n            (f = (f - h) / 85),\n            (g = f % 85),\n            c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n          : c.push(122);\n    return (\n      (function(a, b) {\n        for (var c = b; c > 0; c--) a.pop();\n      })(c, b.length),\n      String.fromCharCode.apply(String, c) + \"~>\"\n    );\n  };\n\n  var ASCII85Decode = function(a) {\n    var c,\n      d,\n      e,\n      f,\n      g,\n      h = String,\n      l = \"length\",\n      w = 255,\n      x = \"charCodeAt\",\n      y = \"slice\",\n      z = \"replace\";\n    for (\n      \"~>\" === a[y](-2),\n        a = a[y](0, -2)\n          [z](/\\s/g, \"\")\n          [z](\"z\", \"!!!!!\"),\n        c = \"uuuuu\"[y](a[l] % 5 || 5),\n        a += c,\n        e = [],\n        f = 0,\n        g = a[l];\n      g > f;\n      f += 5\n    )\n      (d =\n        52200625 * (a[x](f) - 33) +\n        614125 * (a[x](f + 1) - 33) +\n        7225 * (a[x](f + 2) - 33) +\n        85 * (a[x](f + 3) - 33) +\n        (a[x](f + 4) - 33)),\n        e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n    return (\n      (function(a, b) {\n        for (var c = b; c > 0; c--) a.pop();\n      })(e, c[l]),\n      h.fromCharCode.apply(h, e)\n    );\n  };\n\n  var ASCIIHexEncode = function(value) {\n    return (\n      value\n        .split(\"\")\n        .map(function(value) {\n          return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n        })\n        .join(\"\") + \">\"\n    );\n  };\n\n  var ASCIIHexDecode = function(value) {\n    var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n    value = value.replace(/\\s/g, \"\");\n    if (value.indexOf(\">\") !== -1) {\n      value = value.substr(0, value.indexOf(\">\"));\n    }\n    if (value.length % 2) {\n      value += \"0\";\n    }\n    if (regexCheckIfHex.test(value) === false) {\n      return \"\";\n    }\n    var result = \"\";\n    for (var i = 0; i < value.length; i += 2) {\n      result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n    }\n    return result;\n  };\n  /*\n  var FlatePredictors = {\n      None: 1,\n      TIFF: 2,\n      PNG_None: 10,\n      PNG_Sub: 11,\n      PNG_Up: 12,\n      PNG_Average: 13,\n      PNG_Paeth: 14,\n      PNG_Optimum: 15\n  };\n  */\n\n  var FlateEncode = function(data) {\n    var arr = new Uint8Array(data.length);\n    var i = data.length;\n    while (i--) {\n      arr[i] = data.charCodeAt(i);\n    }\n    arr = zlibSync(arr);\n    data = arr.reduce(function(data, byte) {\n      return data + String.fromCharCode(byte);\n    }, \"\");\n    return data;\n  };\n\n  jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n    \"use strict\";\n    var i = 0;\n    var data = origData || \"\";\n    var reverseChain = [];\n    filterChain = filterChain || [];\n\n    if (typeof filterChain === \"string\") {\n      filterChain = [filterChain];\n    }\n\n    for (i = 0; i < filterChain.length; i += 1) {\n      switch (filterChain[i]) {\n        case \"ASCII85Decode\":\n        case \"/ASCII85Decode\":\n          data = ASCII85Decode(data);\n          reverseChain.push(\"/ASCII85Encode\");\n          break;\n        case \"ASCII85Encode\":\n        case \"/ASCII85Encode\":\n          data = ASCII85Encode(data);\n          reverseChain.push(\"/ASCII85Decode\");\n          break;\n        case \"ASCIIHexDecode\":\n        case \"/ASCIIHexDecode\":\n          data = ASCIIHexDecode(data);\n          reverseChain.push(\"/ASCIIHexEncode\");\n          break;\n        case \"ASCIIHexEncode\":\n        case \"/ASCIIHexEncode\":\n          data = ASCIIHexEncode(data);\n          reverseChain.push(\"/ASCIIHexDecode\");\n          break;\n        case \"FlateEncode\":\n        case \"/FlateEncode\":\n          data = FlateEncode(data);\n          reverseChain.push(\"/FlateDecode\");\n          break;\n        default:\n          throw new Error(\n            'The filter: \"' + filterChain[i] + '\" is not implemented'\n          );\n      }\n    }\n\n    return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n  };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * @name loadFile\n   * @function\n   * @param {string} url\n   * @param {boolean} sync\n   * @param {function} callback\n   * @returns {string|undefined} result\n   */\n  jsPDFAPI.loadFile = function(url, sync, callback) {\n\n    // eslint-disable-next-line no-unreachable\n    return nodeReadFile(url, sync, callback);\n  };\n\n  /**\n   * @name loadImageFile\n   * @function\n   * @param {string} path\n   * @param {boolean} sync\n   * @param {function} callback\n   */\n  jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n  function browserRequest(url, sync, callback) {\n    sync = sync === false ? false : true;\n    callback = typeof callback === \"function\" ? callback : function() {};\n    var result = undefined;\n\n    var xhr = function(url, sync, callback) {\n      var request = new XMLHttpRequest();\n      var i = 0;\n\n      var sanitizeUnicode = function(data) {\n        var dataLength = data.length;\n        var charArray = [];\n        var StringFromCharCode = String.fromCharCode;\n\n        //Transform Unicode to ASCII\n        for (i = 0; i < dataLength; i += 1) {\n          charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n        }\n        return charArray.join(\"\");\n      };\n\n      request.open(\"GET\", url, !sync);\n      // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n      request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n      if (sync === false) {\n        request.onload = function() {\n          if (request.status === 200) {\n            callback(sanitizeUnicode(this.responseText));\n          } else {\n            callback(undefined);\n          }\n        };\n      }\n      request.send(null);\n\n      if (sync && request.status === 200) {\n        return sanitizeUnicode(request.responseText);\n      }\n    };\n    try {\n      result = xhr(url, sync, callback);\n      // eslint-disable-next-line no-empty\n    } catch (e) {}\n    return result;\n  }\n\n  function nodeReadFile(url, sync, callback) {\n    sync = sync === false ? false : true;\n    var result = undefined;\n\n    var fs = require(\"fs\");\n    var path = require(\"path\");\n\n    url = path.resolve(url);\n    if (sync) {\n      try {\n        result = fs.readFileSync(url, { encoding: \"latin1\" });\n      } catch (e) {\n        return undefined;\n      }\n    } else {\n      fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n        if (!callback) {\n          return;\n        }\n        if (err) {\n          callback(undefined);\n        }\n        callback(data);\n      });\n    }\n\n    return result;\n  }\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  function loadHtml2Canvas() {\n    return (function() {\n      if (globalObject[\"html2canvas\"]) {\n        return Promise.resolve(globalObject[\"html2canvas\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"html2canvas\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"html2canvas\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load html2canvas\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n      })\n      .then(function(html2canvas) {\n        return html2canvas.default ? html2canvas.default : html2canvas;\n      });\n  }\n\n  function loadDomPurify() {\n    return (function() {\n      if (globalObject[\"DOMPurify\"]) {\n        return Promise.resolve(globalObject[\"DOMPurify\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"dompurify\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"dompurify\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load dompurify\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n      })\n      .then(function(dompurify) {\n        return dompurify.default ? dompurify.default : dompurify;\n      });\n  }\n\n  /**\n   * Determine the type of a variable/object.\n   *\n   * @private\n   * @ignore\n   */\n  var objType = function(obj) {\n    var type = typeof obj;\n    if (type === \"undefined\") return \"undefined\";\n    else if (type === \"string\" || obj instanceof String) return \"string\";\n    else if (type === \"number\" || obj instanceof Number) return \"number\";\n    else if (type === \"function\" || obj instanceof Function) return \"function\";\n    else if (!!obj && obj.constructor === Array) return \"array\";\n    else if (obj && obj.nodeType === 1) return \"element\";\n    else if (type === \"object\") return \"object\";\n    else return \"unknown\";\n  };\n\n  /**\n   * Create an HTML element with optional className, innerHTML, and style.\n   *\n   * @private\n   * @ignore\n   */\n  var createElement = function(tagName, opt) {\n    var el = document.createElement(tagName);\n    if (opt.className) el.className = opt.className;\n    if (opt.innerHTML && opt.dompurify) {\n      el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n    }\n    for (var key in opt.style) {\n      el.style[key] = opt.style[key];\n    }\n    return el;\n  };\n\n  /**\n   * Deep-clone a node and preserve contents/properties.\n   *\n   * @private\n   * @ignore\n   */\n  var cloneNode = function(node, javascriptEnabled) {\n    // Recursively clone the node.\n    var clone =\n      node.nodeType === 3\n        ? document.createTextNode(node.nodeValue)\n        : node.cloneNode(false);\n    for (var child = node.firstChild; child; child = child.nextSibling) {\n      if (\n        javascriptEnabled === true ||\n        child.nodeType !== 1 ||\n        child.nodeName !== \"SCRIPT\"\n      ) {\n        clone.appendChild(cloneNode(child, javascriptEnabled));\n      }\n    }\n\n    if (node.nodeType === 1) {\n      // Preserve contents/properties of special nodes.\n      if (node.nodeName === \"CANVAS\") {\n        clone.width = node.width;\n        clone.height = node.height;\n        clone.getContext(\"2d\").drawImage(node, 0, 0);\n      } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n        clone.value = node.value;\n      }\n\n      // Preserve the node's scroll position when it loads.\n      clone.addEventListener(\n        \"load\",\n        function() {\n          clone.scrollTop = node.scrollTop;\n          clone.scrollLeft = node.scrollLeft;\n        },\n        true\n      );\n    }\n\n    // Return the cloned node.\n    return clone;\n  };\n\n  /* ----- CONSTRUCTOR ----- */\n\n  var Worker = function Worker(opt) {\n    // Create the root parent for the proto chain, and the starting Worker.\n    var root = Object.assign(\n      Worker.convert(Promise.resolve()),\n      JSON.parse(JSON.stringify(Worker.template))\n    );\n    var self = Worker.convert(Promise.resolve(), root);\n\n    // Set progress, optional settings, and return.\n    self = self.setProgress(1, Worker, 1, [Worker]);\n    self = self.set(opt);\n    return self;\n  };\n\n  // Boilerplate for subclassing Promise.\n  Worker.prototype = Object.create(Promise.prototype);\n  Worker.prototype.constructor = Worker;\n\n  // Converts/casts promises into Workers.\n  Worker.convert = function convert(promise, inherit) {\n    // Uses prototypal inheritance to receive changes made to ancestors' properties.\n    promise.__proto__ = inherit || Worker.prototype;\n    return promise;\n  };\n\n  Worker.template = {\n    prop: {\n      src: null,\n      container: null,\n      overlay: null,\n      canvas: null,\n      img: null,\n      pdf: null,\n      pageSize: null,\n      callback: function() {}\n    },\n    progress: {\n      val: 0,\n      state: null,\n      n: 0,\n      stack: []\n    },\n    opt: {\n      filename: \"file.pdf\",\n      margin: [0, 0, 0, 0],\n      enableLinks: true,\n      x: 0,\n      y: 0,\n      html2canvas: {},\n      jsPDF: {},\n      backgroundColor: \"transparent\"\n    }\n  };\n\n  /* ----- FROM / TO ----- */\n\n  Worker.prototype.from = function from(src, type) {\n    function getType(src) {\n      switch (objType(src)) {\n        case \"string\":\n          return \"string\";\n        case \"element\":\n          return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n        default:\n          return \"unknown\";\n      }\n    }\n\n    return this.then(function from_main() {\n      type = type || getType(src);\n      switch (type) {\n        case \"string\":\n          return this.then(loadDomPurify).then(function(dompurify) {\n            return this.set({\n              src: createElement(\"div\", {\n                innerHTML: src,\n                dompurify: dompurify\n              })\n            });\n          });\n        case \"element\":\n          return this.set({ src: src });\n        case \"canvas\":\n          return this.set({ canvas: src });\n        case \"img\":\n          return this.set({ img: src });\n        default:\n          return this.error(\"Unknown source type.\");\n      }\n    });\n  };\n\n  Worker.prototype.to = function to(target) {\n    // Route the 'to' request to the appropriate method.\n    switch (target) {\n      case \"container\":\n        return this.toContainer();\n      case \"canvas\":\n        return this.toCanvas();\n      case \"img\":\n        return this.toImg();\n      case \"pdf\":\n        return this.toPdf();\n      default:\n        return this.error(\"Invalid target.\");\n    }\n  };\n\n  Worker.prototype.toContainer = function toContainer() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkSrc() {\n        return (\n          this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n        );\n      },\n      function checkPageSize() {\n        return this.prop.pageSize || this.setPageSize();\n      }\n    ];\n    return this.thenList(prereqs).then(function toContainer_main() {\n      // Define the CSS styles for the container and its overlay parent.\n      var overlayCSS = {\n        position: \"fixed\",\n        overflow: \"hidden\",\n        zIndex: 1000,\n        left: \"-100000px\",\n        right: 0,\n        bottom: 0,\n        top: 0\n      };\n      var containerCSS = {\n        position: \"relative\",\n        display: \"inline-block\",\n        width:\n          (typeof this.opt.width === \"number\" &&\n          !isNaN(this.opt.width) &&\n          typeof this.opt.windowWidth === \"number\" &&\n          !isNaN(this.opt.windowWidth)\n            ? this.opt.windowWidth\n            : Math.max(\n                this.prop.src.clientWidth,\n                this.prop.src.scrollWidth,\n                this.prop.src.offsetWidth\n              )) + \"px\",\n        left: 0,\n        right: 0,\n        top: 0,\n        margin: \"auto\",\n        backgroundColor: this.opt.backgroundColor\n      }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n      var source = cloneNode(\n        this.prop.src,\n        this.opt.html2canvas.javascriptEnabled\n      );\n\n      if (source.tagName === \"BODY\") {\n        containerCSS.height =\n          Math.max(\n            document.body.scrollHeight,\n            document.body.offsetHeight,\n            document.documentElement.clientHeight,\n            document.documentElement.scrollHeight,\n            document.documentElement.offsetHeight\n          ) + \"px\";\n      }\n\n      this.prop.overlay = createElement(\"div\", {\n        className: \"html2pdf__overlay\",\n        style: overlayCSS\n      });\n      this.prop.container = createElement(\"div\", {\n        className: \"html2pdf__container\",\n        style: containerCSS\n      });\n      this.prop.container.appendChild(source);\n      this.prop.container.firstChild.appendChild(\n        createElement(\"div\", {\n          style: {\n            clear: \"both\",\n            border: \"0 none transparent\",\n            margin: 0,\n            padding: 0,\n            height: 0\n          }\n        })\n      );\n      this.prop.container.style.float = \"none\";\n      this.prop.overlay.appendChild(this.prop.container);\n      document.body.appendChild(this.prop.overlay);\n      this.prop.container.firstChild.style.position = \"relative\";\n      this.prop.container.height =\n        Math.max(\n          this.prop.container.firstChild.clientHeight,\n          this.prop.container.firstChild.scrollHeight,\n          this.prop.container.firstChild.offsetHeight\n        ) + \"px\";\n    });\n  };\n\n  Worker.prototype.toCanvas = function toCanvas() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContainer() {\n        return (\n          document.body.contains(this.prop.container) || this.toContainer()\n        );\n      }\n    ];\n\n    // Fulfill prereqs then create the canvas.\n    return this.thenList(prereqs)\n      .then(loadHtml2Canvas)\n      .then(function toCanvas_main(html2canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n        var options = Object.assign({}, this.opt.html2canvas);\n        delete options.onrendered;\n\n        return html2canvas(this.prop.container, options);\n      })\n      .then(function toCanvas_post(canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n        var onRendered = this.opt.html2canvas.onrendered || function() {};\n        onRendered(canvas);\n\n        this.prop.canvas = canvas;\n        document.body.removeChild(this.prop.overlay);\n      });\n  };\n\n  Worker.prototype.toContext2d = function toContext2d() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContainer() {\n        return (\n          document.body.contains(this.prop.container) || this.toContainer()\n        );\n      }\n    ];\n\n    // Fulfill prereqs then create the canvas.\n    return this.thenList(prereqs)\n      .then(loadHtml2Canvas)\n      .then(function toContext2d_main(html2canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n\n        var pdf = this.opt.jsPDF;\n        var fontFaces = this.opt.fontFaces;\n\n        var scale =\n          typeof this.opt.width === \"number\" &&\n          !isNaN(this.opt.width) &&\n          typeof this.opt.windowWidth === \"number\" &&\n          !isNaN(this.opt.windowWidth)\n            ? this.opt.width / this.opt.windowWidth\n            : 1;\n\n        var options = Object.assign(\n          {\n            async: true,\n            allowTaint: true,\n            scale: scale,\n            scrollX: this.opt.scrollX || 0,\n            scrollY: this.opt.scrollY || 0,\n            backgroundColor: \"#ffffff\",\n            imageTimeout: 15000,\n            logging: true,\n            proxy: null,\n            removeContainer: true,\n            foreignObjectRendering: false,\n            useCORS: false\n          },\n          this.opt.html2canvas\n        );\n        delete options.onrendered;\n\n        pdf.context2d.autoPaging =\n          typeof this.opt.autoPaging === \"undefined\"\n            ? true\n            : this.opt.autoPaging;\n        pdf.context2d.posX = this.opt.x;\n        pdf.context2d.posY = this.opt.y;\n        pdf.context2d.margin = this.opt.margin;\n        pdf.context2d.fontFaces = fontFaces;\n\n        if (fontFaces) {\n          for (var i = 0; i < fontFaces.length; ++i) {\n            var font = fontFaces[i];\n            var src = font.src.find(function(src) {\n              return src.format === \"truetype\";\n            });\n\n            if (src) {\n              pdf.addFont(src.url, font.ref.name, font.ref.style);\n            }\n          }\n        }\n\n        options.windowHeight = options.windowHeight || 0;\n        options.windowHeight =\n          options.windowHeight == 0\n            ? Math.max(\n                this.prop.container.clientHeight,\n                this.prop.container.scrollHeight,\n                this.prop.container.offsetHeight\n              )\n            : options.windowHeight;\n\n        pdf.context2d.save(true);\n        return html2canvas(this.prop.container, options);\n      })\n      .then(function toContext2d_post(canvas) {\n        this.opt.jsPDF.context2d.restore(true);\n\n        // Handle old-fashioned 'onrendered' argument.\n        var onRendered = this.opt.html2canvas.onrendered || function() {};\n        onRendered(canvas);\n\n        this.prop.canvas = canvas;\n        document.body.removeChild(this.prop.overlay);\n      });\n  };\n\n  Worker.prototype.toImg = function toImg() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkCanvas() {\n        return this.prop.canvas || this.toCanvas();\n      }\n    ];\n\n    // Fulfill prereqs then create the image.\n    return this.thenList(prereqs).then(function toImg_main() {\n      var imgData = this.prop.canvas.toDataURL(\n        \"image/\" + this.opt.image.type,\n        this.opt.image.quality\n      );\n      this.prop.img = document.createElement(\"img\");\n      this.prop.img.src = imgData;\n    });\n  };\n\n  Worker.prototype.toPdf = function toPdf() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContext2d() {\n        return this.toContext2d();\n      }\n      //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n    ];\n\n    // Fulfill prereqs then create the image.\n    return this.thenList(prereqs).then(function toPdf_main() {\n      // Create local copies of frequently used properties.\n      this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n    });\n  };\n\n  /* ----- OUTPUT / SAVE ----- */\n\n  Worker.prototype.output = function output(type, options, src) {\n    // Redirect requests to the correct function (outputPdf / outputImg).\n    src = src || \"pdf\";\n    if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n      return this.outputImg(type, options);\n    } else {\n      return this.outputPdf(type, options);\n    }\n  };\n\n  Worker.prototype.outputPdf = function outputPdf(type, options) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs then perform the appropriate output.\n    return this.thenList(prereqs).then(function outputPdf_main() {\n      /* Currently implemented output types:\n       *    https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n       *  save(options), arraybuffer, blob, bloburi/bloburl,\n       *  datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n       */\n      return this.prop.pdf.output(type, options);\n    });\n  };\n\n  Worker.prototype.outputImg = function outputImg(type) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkImg() {\n        return this.prop.img || this.toImg();\n      }\n    ];\n\n    // Fulfill prereqs then perform the appropriate output.\n    return this.thenList(prereqs).then(function outputImg_main() {\n      switch (type) {\n        case undefined:\n        case \"img\":\n          return this.prop.img;\n        case \"datauristring\":\n        case \"dataurlstring\":\n          return this.prop.img.src;\n        case \"datauri\":\n        case \"dataurl\":\n          return (document.location.href = this.prop.img.src);\n        default:\n          throw 'Image output type \"' + type + '\" is not supported.';\n      }\n    });\n  };\n\n  Worker.prototype.save = function save(filename) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs, update the filename (if provided), and save the PDF.\n    return this.thenList(prereqs)\n      .set(filename ? { filename: filename } : null)\n      .then(function save_main() {\n        this.prop.pdf.save(this.opt.filename);\n      });\n  };\n\n  Worker.prototype.doCallback = function doCallback() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs, update the filename (if provided), and save the PDF.\n    return this.thenList(prereqs).then(function doCallback_main() {\n      this.prop.callback(this.prop.pdf);\n    });\n  };\n\n  /* ----- SET / GET ----- */\n\n  Worker.prototype.set = function set(opt) {\n    // TODO: Implement ordered pairs?\n\n    // Silently ignore invalid or empty input.\n    if (objType(opt) !== \"object\") {\n      return this;\n    }\n\n    // Build an array of setter functions to queue.\n    var fns = Object.keys(opt || {}).map(function(key) {\n      if (key in Worker.template.prop) {\n        // Set pre-defined properties.\n        return function set_prop() {\n          this.prop[key] = opt[key];\n        };\n      } else {\n        switch (key) {\n          case \"margin\":\n            return this.setMargin.bind(this, opt.margin);\n          case \"jsPDF\":\n            return function set_jsPDF() {\n              this.opt.jsPDF = opt.jsPDF;\n              return this.setPageSize();\n            };\n          case \"pageSize\":\n            return this.setPageSize.bind(this, opt.pageSize);\n          default:\n            // Set any other properties in opt.\n            return function set_opt() {\n              this.opt[key] = opt[key];\n            };\n        }\n      }\n    }, this);\n\n    // Set properties within the promise chain.\n    return this.then(function set_main() {\n      return this.thenList(fns);\n    });\n  };\n\n  Worker.prototype.get = function get(key, cbk) {\n    return this.then(function get_main() {\n      // Fetch the requested property, either as a predefined prop or in opt.\n      var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n      return cbk ? cbk(val) : val;\n    });\n  };\n\n  Worker.prototype.setMargin = function setMargin(margin) {\n    return this.then(function setMargin_main() {\n      // Parse the margin property.\n      switch (objType(margin)) {\n        case \"number\":\n          margin = [margin, margin, margin, margin];\n        // eslint-disable-next-line no-fallthrough\n        case \"array\":\n          if (margin.length === 2) {\n            margin = [margin[0], margin[1], margin[0], margin[1]];\n          }\n          if (margin.length === 4) {\n            break;\n          }\n        // eslint-disable-next-line no-fallthrough\n        default:\n          return this.error(\"Invalid margin array.\");\n      }\n\n      // Set the margin property, then update pageSize.\n      this.opt.margin = margin;\n    }).then(this.setPageSize);\n  };\n\n  Worker.prototype.setPageSize = function setPageSize(pageSize) {\n    function toPx(val, k) {\n      return Math.floor(((val * k) / 72) * 96);\n    }\n\n    return this.then(function setPageSize_main() {\n      // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n      pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n      // Add 'inner' field if not present.\n      if (!pageSize.hasOwnProperty(\"inner\")) {\n        pageSize.inner = {\n          width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n          height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n        };\n        pageSize.inner.px = {\n          width: toPx(pageSize.inner.width, pageSize.k),\n          height: toPx(pageSize.inner.height, pageSize.k)\n        };\n        pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n      }\n\n      // Attach pageSize to this.\n      this.prop.pageSize = pageSize;\n    });\n  };\n\n  Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n    // Immediately update all progress values.\n    if (val != null) this.progress.val = val;\n    if (state != null) this.progress.state = state;\n    if (n != null) this.progress.n = n;\n    if (stack != null) this.progress.stack = stack;\n    this.progress.ratio = this.progress.val / this.progress.state;\n\n    // Return this for command chaining.\n    return this;\n  };\n\n  Worker.prototype.updateProgress = function updateProgress(\n    val,\n    state,\n    n,\n    stack\n  ) {\n    // Immediately update all progress values, using setProgress.\n    return this.setProgress(\n      val ? this.progress.val + val : null,\n      state ? state : null,\n      n ? this.progress.n + n : null,\n      stack ? this.progress.stack.concat(stack) : null\n    );\n  };\n\n  /* ----- PROMISE MAPPING ----- */\n\n  Worker.prototype.then = function then(onFulfilled, onRejected) {\n    // Wrap `this` for encapsulation.\n    var self = this;\n\n    return this.thenCore(onFulfilled, onRejected, function then_main(\n      onFulfilled,\n      onRejected\n    ) {\n      // Update progress while queuing, calling, and resolving `then`.\n      self.updateProgress(null, null, 1, [onFulfilled]);\n      return Promise.prototype.then\n        .call(this, function then_pre(val) {\n          self.updateProgress(null, onFulfilled);\n          return val;\n        })\n        .then(onFulfilled, onRejected)\n        .then(function then_post(val) {\n          self.updateProgress(1);\n          return val;\n        });\n    });\n  };\n\n  Worker.prototype.thenCore = function thenCore(\n    onFulfilled,\n    onRejected,\n    thenBase\n  ) {\n    // Handle optional thenBase parameter.\n    thenBase = thenBase || Promise.prototype.then;\n\n    // Wrap `this` for encapsulation and bind it to the promise handlers.\n    var self = this;\n    if (onFulfilled) {\n      onFulfilled = onFulfilled.bind(self);\n    }\n    if (onRejected) {\n      onRejected = onRejected.bind(self);\n    }\n\n    // Cast self into a Promise to avoid polyfills recursively defining `then`.\n    var isNative =\n      Promise.toString().indexOf(\"[native code]\") !== -1 &&\n      Promise.name === \"Promise\";\n    var selfPromise = isNative\n      ? self\n      : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n    // Return the promise, after casting it into a Worker and preserving props.\n    var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n    return Worker.convert(returnVal, self.__proto__);\n  };\n\n  Worker.prototype.thenExternal = function thenExternal(\n    onFulfilled,\n    onRejected\n  ) {\n    // Call `then` and return a standard promise (exits the Worker chain).\n    return Promise.prototype.then.call(this, onFulfilled, onRejected);\n  };\n\n  Worker.prototype.thenList = function thenList(fns) {\n    // Queue a series of promise 'factories' into the promise chain.\n    var self = this;\n    fns.forEach(function thenList_forEach(fn) {\n      self = self.thenCore(fn);\n    });\n    return self;\n  };\n\n  Worker.prototype[\"catch\"] = function(onRejected) {\n    // Bind `this` to the promise handler, call `catch`, and return a Worker.\n    if (onRejected) {\n      onRejected = onRejected.bind(this);\n    }\n    var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n    return Worker.convert(returnVal, this);\n  };\n\n  Worker.prototype.catchExternal = function catchExternal(onRejected) {\n    // Call `catch` and return a standard promise (exits the Worker chain).\n    return Promise.prototype[\"catch\"].call(this, onRejected);\n  };\n\n  Worker.prototype.error = function error(msg) {\n    // Throw the error in the Promise chain.\n    return this.then(function error_main() {\n      throw new Error(msg);\n    });\n  };\n\n  /* ----- ALIASES ----- */\n\n  Worker.prototype.using = Worker.prototype.set;\n  Worker.prototype.saveAs = Worker.prototype.save;\n  Worker.prototype.export = Worker.prototype.output;\n  Worker.prototype.run = Worker.prototype.then;\n\n  // Get dimensions of a PDF page, as determined by jsPDF.\n  jsPDF.getPageSize = function(orientation, unit, format) {\n    // Decode options object\n    if (typeof orientation === \"object\") {\n      var options = orientation;\n      orientation = options.orientation;\n      unit = options.unit || unit;\n      format = options.format || format;\n    }\n\n    // Default options\n    unit = unit || \"mm\";\n    format = format || \"a4\";\n    orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n    var format_as_string = (\"\" + format).toLowerCase();\n\n    // Size in pt of various paper formats\n    var pageFormats = {\n      a0: [2383.94, 3370.39],\n      a1: [1683.78, 2383.94],\n      a2: [1190.55, 1683.78],\n      a3: [841.89, 1190.55],\n      a4: [595.28, 841.89],\n      a5: [419.53, 595.28],\n      a6: [297.64, 419.53],\n      a7: [209.76, 297.64],\n      a8: [147.4, 209.76],\n      a9: [104.88, 147.4],\n      a10: [73.7, 104.88],\n      b0: [2834.65, 4008.19],\n      b1: [2004.09, 2834.65],\n      b2: [1417.32, 2004.09],\n      b3: [1000.63, 1417.32],\n      b4: [708.66, 1000.63],\n      b5: [498.9, 708.66],\n      b6: [354.33, 498.9],\n      b7: [249.45, 354.33],\n      b8: [175.75, 249.45],\n      b9: [124.72, 175.75],\n      b10: [87.87, 124.72],\n      c0: [2599.37, 3676.54],\n      c1: [1836.85, 2599.37],\n      c2: [1298.27, 1836.85],\n      c3: [918.43, 1298.27],\n      c4: [649.13, 918.43],\n      c5: [459.21, 649.13],\n      c6: [323.15, 459.21],\n      c7: [229.61, 323.15],\n      c8: [161.57, 229.61],\n      c9: [113.39, 161.57],\n      c10: [79.37, 113.39],\n      dl: [311.81, 623.62],\n      letter: [612, 792],\n      \"government-letter\": [576, 756],\n      legal: [612, 1008],\n      \"junior-legal\": [576, 360],\n      ledger: [1224, 792],\n      tabloid: [792, 1224],\n      \"credit-card\": [153, 243]\n    };\n\n    var k;\n    // Unit conversion\n    switch (unit) {\n      case \"pt\":\n        k = 1;\n        break;\n      case \"mm\":\n        k = 72 / 25.4;\n        break;\n      case \"cm\":\n        k = 72 / 2.54;\n        break;\n      case \"in\":\n        k = 72;\n        break;\n      case \"px\":\n        k = 72 / 96;\n        break;\n      case \"pc\":\n        k = 12;\n        break;\n      case \"em\":\n        k = 12;\n        break;\n      case \"ex\":\n        k = 6;\n        break;\n      default:\n        throw \"Invalid unit: \" + unit;\n    }\n    var pageHeight = 0;\n    var pageWidth = 0;\n\n    // Dimensions are stored as user units and converted to points on output\n    if (pageFormats.hasOwnProperty(format_as_string)) {\n      pageHeight = pageFormats[format_as_string][1] / k;\n      pageWidth = pageFormats[format_as_string][0] / k;\n    } else {\n      try {\n        pageHeight = format[1];\n        pageWidth = format[0];\n      } catch (err) {\n        throw new Error(\"Invalid format: \" + format);\n      }\n    }\n\n    var tmp;\n    // Handle page orientation\n    if (orientation === \"p\" || orientation === \"portrait\") {\n      orientation = \"p\";\n      if (pageWidth > pageHeight) {\n        tmp = pageWidth;\n        pageWidth = pageHeight;\n        pageHeight = tmp;\n      }\n    } else if (orientation === \"l\" || orientation === \"landscape\") {\n      orientation = \"l\";\n      if (pageHeight > pageWidth) {\n        tmp = pageWidth;\n        pageWidth = pageHeight;\n        pageHeight = tmp;\n      }\n    } else {\n      throw \"Invalid orientation: \" + orientation;\n    }\n\n    // Return information (k is the unit conversion ratio from pts)\n    var info = {\n      width: pageWidth,\n      height: pageHeight,\n      unit: unit,\n      k: k,\n      orientation: orientation\n    };\n    return info;\n  };\n\n  /**\n   * @typedef FontFace\n   *\n   * The font-face type implements an interface similar to that of the font-face CSS rule,\n   * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n   * is updated.\n   *\n   * All properties expect values similar to those in the font-face CSS rule. A difference\n   * is the font-family, which do not need to be enclosed in double-quotes when containing\n   * spaces like in CSS.\n   *\n   * @property {string} family The name of the font-family.\n   * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n   * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n   * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n   * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n   * @property {string} [src] url A URL to a font of a specific format.\n   * @property {string} [src] format Format of the font referenced by the URL.\n   */\n\n  /**\n   * Generate a PDF from an HTML element or string using.\n   *\n   * @name html\n   * @function\n   * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n   * @param {Object} [options] Collection of settings\n   * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n   * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n   * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n   * <ul>\n   * <li>\n   *   <code>false</code>: Auto paging is disabled.\n   * </li>\n   * <li>\n   *   <code>true</code> or <code>'slice'</code>: Will cut shapes or text chunks across page breaks. Will possibly\n   *   slice text in half, making it difficult to read.\n   * </li>\n   * <li>\n   *   <code>'text'</code>: Trys not to cut text in half across page breaks. Works best for documents consisting\n   *   mostly of a single column of text.\n   * </li>\n   * </ul>\n   * Default is <code>true</code>.\n   * @param {string} [options.filename] name of the file\n   * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n   * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n   * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n   * @param {jsPDF} [options.jsPDF] jsPDF instance\n   * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n   * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n   * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n   * scaled such that it fits into the specified width. Has no effect if either the <code>html2canvas.scale<code> is\n   * specified or the <code>windowWidth</code> option is NOT specified.\n   * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n   * <code>html2canvas.windowWidth</code> option, this option affects the actual container size while rendering and\n   * does NOT affect CSS media queries. This option only has an effect, if the <code>width<code> option is also specified.\n   *\n   * @example\n   * var doc = new jsPDF();\n   *\n   * doc.html(document.body, {\n   *    callback: function (doc) {\n   *      doc.save();\n   *    },\n   *    x: 10,\n   *    y: 10\n   * });\n   */\n  jsPDFAPI.html = function(src, options) {\n    \"use strict\";\n\n    options = options || {};\n    options.callback = options.callback || function() {};\n    options.html2canvas = options.html2canvas || {};\n    options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n    options.jsPDF = options.jsPDF || this;\n    options.fontFaces = options.fontFaces\n      ? options.fontFaces.map(normalizeFontFace)\n      : null;\n\n    // Create a new worker with the given options.\n    var worker = new Worker(options);\n\n    if (!options.worker) {\n      // If worker is not set to true, perform the traditional 'simple' operation.\n      return worker.from(src).doCallback();\n    } else {\n      // Otherwise, return the worker for new Promise-based operation.\n      return worker;\n    }\n  };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  var jsNamesObj, jsJsObj, text;\n  /**\n   * @name addJS\n   * @function\n   * @param {string} javascript The javascript to be embedded into the PDF-file.\n   * @returns {jsPDF}\n   */\n  jsPDFAPI.addJS = function(javascript) {\n    text = javascript;\n    this.internal.events.subscribe(\"postPutResources\", function() {\n      jsNamesObj = this.internal.newObject();\n      this.internal.out(\"<<\");\n      this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n      this.internal.out(\">>\");\n      this.internal.out(\"endobj\");\n\n      jsJsObj = this.internal.newObject();\n      this.internal.out(\"<<\");\n      this.internal.out(\"/S /JavaScript\");\n      this.internal.out(\"/JS (\" + text + \")\");\n      this.internal.out(\">>\");\n      this.internal.out(\"endobj\");\n    });\n    this.internal.events.subscribe(\"putCatalog\", function() {\n      if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n        this.internal.out(\"/Names <</JavaScript \" + jsNamesObj + \" 0 R>>\");\n      }\n    });\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var namesOid;\n  //var destsGoto = [];\n\n  jsPDFAPI.events.push([\n    \"postPutResources\",\n    function() {\n      var pdf = this;\n      var rx = /^(\\d+) 0 obj$/;\n\n      // Write action goto objects for each page\n      // this.outline.destsGoto = [];\n      // for (var i = 0; i < totalPages; i++) {\n      // var id = pdf.internal.newObject();\n      // this.outline.destsGoto.push(id);\n      // pdf.internal.write(\"<</D[\" + (i * 2 + 3) + \" 0 R /XYZ null\n      // null null]/S/GoTo>> endobj\");\n      // }\n      //\n      // for (var i = 0; i < dests.length; i++) {\n      // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n      // R\");\n      // }\n      //\n      if (this.outline.root.children.length > 0) {\n        var lines = pdf.outline.render().split(/\\r\\n/);\n        for (var i = 0; i < lines.length; i++) {\n          var line = lines[i];\n          var m = rx.exec(line);\n          if (m != null) {\n            var oid = m[1];\n            pdf.internal.newObjectDeferredBegin(oid, false);\n          }\n          pdf.internal.write(line);\n        }\n      }\n\n      // This code will write named destination for each page reference\n      // (page_1, etc)\n      if (this.outline.createNamedDestinations) {\n        var totalPages = this.internal.pages.length;\n        // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n        // follow 5, 7, 9, etc\n        // Write destination objects for each page\n        var dests = [];\n        for (var i = 0; i < totalPages; i++) {\n          var id = pdf.internal.newObject();\n          dests.push(id);\n          var info = pdf.internal.getPageInfo(i + 1);\n          pdf.internal.write(\n            \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n          );\n        }\n\n        // assign a name for each destination\n        var names2Oid = pdf.internal.newObject();\n        pdf.internal.write(\"<< /Names [ \");\n        for (var i = 0; i < dests.length; i++) {\n          pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n        }\n        pdf.internal.write(\" ] >>\", \"endobj\");\n\n        // var kids = pdf.internal.newObject();\n        // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n        // pdf.internal.write(' ] >>', 'endobj');\n\n        namesOid = pdf.internal.newObject();\n        pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n        pdf.internal.write(\">>\", \"endobj\");\n      }\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"putCatalog\",\n    function() {\n      var pdf = this;\n      if (pdf.outline.root.children.length > 0) {\n        pdf.internal.write(\n          \"/Outlines\",\n          this.outline.makeRef(this.outline.root)\n        );\n        if (this.outline.createNamedDestinations) {\n          pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n        }\n        // Open with Bookmarks showing\n        // pdf.internal.write(\"/PageMode /UseOutlines\");\n      }\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"initialized\",\n    function() {\n      var pdf = this;\n\n      pdf.outline = {\n        createNamedDestinations: false,\n        root: {\n          children: []\n        }\n      };\n\n      /**\n       * Options: pageNumber\n       */\n      pdf.outline.add = function(parent, title, options) {\n        var item = {\n          title: title,\n          options: options,\n          children: []\n        };\n        if (parent == null) {\n          parent = this.root;\n        }\n        parent.children.push(item);\n        return item;\n      };\n\n      pdf.outline.render = function() {\n        this.ctx = {};\n        this.ctx.val = \"\";\n        this.ctx.pdf = pdf;\n\n        this.genIds_r(this.root);\n        this.renderRoot(this.root);\n        this.renderItems(this.root);\n\n        return this.ctx.val;\n      };\n\n      pdf.outline.genIds_r = function(node) {\n        node.id = pdf.internal.newObjectDeferred();\n        for (var i = 0; i < node.children.length; i++) {\n          this.genIds_r(node.children[i]);\n        }\n      };\n\n      pdf.outline.renderRoot = function(node) {\n        this.objStart(node);\n        this.line(\"/Type /Outlines\");\n        if (node.children.length > 0) {\n          this.line(\"/First \" + this.makeRef(node.children[0]));\n          this.line(\n            \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n          );\n        }\n        this.line(\n          \"/Count \" +\n            this.count_r(\n              {\n                count: 0\n              },\n              node\n            )\n        );\n        this.objEnd();\n      };\n\n      pdf.outline.renderItems = function(node) {\n        var getVerticalCoordinateString = this.ctx.pdf.internal\n          .getVerticalCoordinateString;\n        for (var i = 0; i < node.children.length; i++) {\n          var item = node.children[i];\n          this.objStart(item);\n\n          this.line(\"/Title \" + this.makeString(item.title));\n\n          this.line(\"/Parent \" + this.makeRef(node));\n          if (i > 0) {\n            this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n          }\n          if (i < node.children.length - 1) {\n            this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n          }\n          if (item.children.length > 0) {\n            this.line(\"/First \" + this.makeRef(item.children[0]));\n            this.line(\n              \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n            );\n          }\n\n          var count = (this.count = this.count_r(\n            {\n              count: 0\n            },\n            item\n          ));\n          if (count > 0) {\n            this.line(\"/Count \" + count);\n          }\n\n          if (item.options) {\n            if (item.options.pageNumber) {\n              // Explicit Destination\n              //WARNING this assumes page ids are 3,5,7, etc.\n              var info = pdf.internal.getPageInfo(item.options.pageNumber);\n              this.line(\n                \"/Dest \" +\n                  \"[\" +\n                  info.objId +\n                  \" 0 R /XYZ 0 \" +\n                  getVerticalCoordinateString(0) +\n                  \" 0]\"\n              );\n              // this line does not work on all clients (pageNumber instead of page ref)\n              //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n              // Named Destination\n              // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n              // Action Destination\n              // var id = pdf.internal.newObject();\n              // pdf.internal.write('<</D[' + (item.options.pageNumber - 1) + ' /XYZ null null null]/S/GoTo>> endobj');\n              // this.line('/A ' + id + ' 0 R' );\n            }\n          }\n          this.objEnd();\n        }\n        for (var z = 0; z < node.children.length; z++) {\n          this.renderItems(node.children[z]);\n        }\n      };\n\n      pdf.outline.line = function(text) {\n        this.ctx.val += text + \"\\r\\n\";\n      };\n\n      pdf.outline.makeRef = function(node) {\n        return node.id + \" 0 R\";\n      };\n\n      pdf.outline.makeString = function(val) {\n        return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n      };\n\n      pdf.outline.objStart = function(node) {\n        this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n      };\n\n      pdf.outline.objEnd = function() {\n        this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n      };\n\n      pdf.outline.count_r = function(ctx, node) {\n        for (var i = 0; i < node.children.length; i++) {\n          ctx.count++;\n          this.count_r(ctx, node.children[i]);\n        }\n        return ctx.count;\n      };\n    }\n  ]);\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * 0xc0 (SOF) Huffman  - Baseline DCT\n   * 0xc1 (SOF) Huffman  - Extended sequential DCT\n   * 0xc2 Progressive DCT (SOF2)\n   * 0xc3 Spatial (sequential) lossless (SOF3)\n   * 0xc4 Differential sequential DCT (SOF5)\n   * 0xc5 Differential progressive DCT (SOF6)\n   * 0xc6 Differential spatial (SOF7)\n   * 0xc7\n   */\n  var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n  //takes a string imgData containing the raw bytes of\n  //a jpeg image and returns [width, height]\n  //Algorithm from: http://www.64lines.com/jpeg-width-height\n  var getJpegInfo = function(imgData) {\n    var width, height, numcomponents;\n    var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n    var len = imgData.length;\n    var result = { width: 0, height: 0, numcomponents: 1 };\n    for (var i = 4; i < len; i += 2) {\n      i += blockLength;\n      if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n        height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n        width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n        numcomponents = imgData.charCodeAt(i + 9);\n        result = { width: width, height: height, numcomponents: numcomponents };\n        break;\n      } else {\n        blockLength =\n          imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n      }\n    }\n    return result;\n  };\n\n  /**\n   * @ignore\n   */\n  jsPDFAPI.processJPEG = function(\n    data,\n    index,\n    alias,\n    compression,\n    dataAsBinaryString,\n    colorSpace\n  ) {\n    var filter = this.decode.DCT_DECODE,\n      bpc = 8,\n      dims,\n      result = null;\n\n    if (\n      typeof data === \"string\" ||\n      this.__addimage__.isArrayBuffer(data) ||\n      this.__addimage__.isArrayBufferView(data)\n    ) {\n      // if we already have a stored binary string rep use that\n      data = dataAsBinaryString || data;\n      data = this.__addimage__.isArrayBuffer(data)\n        ? new Uint8Array(data)\n        : data;\n      data = this.__addimage__.isArrayBufferView(data)\n        ? this.__addimage__.arrayBufferToBinaryString(data)\n        : data;\n\n      dims = getJpegInfo(data);\n      switch (dims.numcomponents) {\n        case 1:\n          colorSpace = this.color_spaces.DEVICE_GRAY;\n          break;\n        case 4:\n          colorSpace = this.color_spaces.DEVICE_CMYK;\n          break;\n        case 3:\n          colorSpace = this.color_spaces.DEVICE_RGB;\n          break;\n      }\n\n      result = {\n        data: data,\n        width: dims.width,\n        height: dims.height,\n        colorSpace: colorSpace,\n        bitsPerComponent: bpc,\n        filter: filter,\n        index: index,\n        alias: alias\n      };\n    }\n    return result;\n  };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n  var APNG_BLEND_OP_OVER,\n    APNG_BLEND_OP_SOURCE,\n    APNG_DISPOSE_OP_BACKGROUND,\n    APNG_DISPOSE_OP_NONE,\n    APNG_DISPOSE_OP_PREVIOUS,\n    makeImage,\n    scratchCanvas,\n    scratchCtx;\n\n  APNG_DISPOSE_OP_NONE = 0;\n\n  APNG_DISPOSE_OP_BACKGROUND = 1;\n\n  APNG_DISPOSE_OP_PREVIOUS = 2;\n\n  APNG_BLEND_OP_SOURCE = 0;\n\n  APNG_BLEND_OP_OVER = 1;\n\n  function PNG(data) {\n    var chunkSize,\n      colors,\n      palLen,\n      delayDen,\n      delayNum,\n      frame,\n      i,\n      index,\n      key,\n      section,\n      palShort,\n      text,\n      _i,\n      _j,\n      _ref;\n    this.data = data;\n    this.pos = 8;\n    this.palette = [];\n    this.imgData = [];\n    this.transparency = {};\n    this.animation = null;\n    this.text = {};\n    frame = null;\n    while (true) {\n      chunkSize = this.readUInt32();\n      section = function() {\n        var _i, _results;\n        _results = [];\n        for (i = _i = 0; _i < 4; i = ++_i) {\n          _results.push(String.fromCharCode(this.data[this.pos++]));\n        }\n        return _results;\n      }\n        .call(this)\n        .join(\"\");\n      switch (section) {\n        case \"IHDR\":\n          this.width = this.readUInt32();\n          this.height = this.readUInt32();\n          this.bits = this.data[this.pos++];\n          this.colorType = this.data[this.pos++];\n          this.compressionMethod = this.data[this.pos++];\n          this.filterMethod = this.data[this.pos++];\n          this.interlaceMethod = this.data[this.pos++];\n          break;\n        case \"acTL\":\n          this.animation = {\n            numFrames: this.readUInt32(),\n            numPlays: this.readUInt32() || Infinity,\n            frames: []\n          };\n          break;\n        case \"PLTE\":\n          this.palette = this.read(chunkSize);\n          break;\n        case \"fcTL\":\n          if (frame) {\n            this.animation.frames.push(frame);\n          }\n          this.pos += 4;\n          frame = {\n            width: this.readUInt32(),\n            height: this.readUInt32(),\n            xOffset: this.readUInt32(),\n            yOffset: this.readUInt32()\n          };\n          delayNum = this.readUInt16();\n          delayDen = this.readUInt16() || 100;\n          frame.delay = (1000 * delayNum) / delayDen;\n          frame.disposeOp = this.data[this.pos++];\n          frame.blendOp = this.data[this.pos++];\n          frame.data = [];\n          break;\n        case \"IDAT\":\n        case \"fdAT\":\n          if (section === \"fdAT\") {\n            this.pos += 4;\n            chunkSize -= 4;\n          }\n          data = (frame != null ? frame.data : void 0) || this.imgData;\n          for (\n            i = _i = 0;\n            0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n            i = 0 <= chunkSize ? ++_i : --_i\n          ) {\n            data.push(this.data[this.pos++]);\n          }\n          break;\n        case \"tRNS\":\n          this.transparency = {};\n          switch (this.colorType) {\n            case 3:\n              palLen = this.palette.length / 3;\n              this.transparency.indexed = this.read(chunkSize);\n              if (this.transparency.indexed.length > palLen)\n                throw new Error(\"More transparent colors than palette size\");\n              /*\n               * According to the PNG spec trns should be increased to the same size as palette if shorter\n               */\n              //palShort = 255 - this.transparency.indexed.length;\n              palShort = palLen - this.transparency.indexed.length;\n              if (palShort > 0) {\n                for (\n                  i = _j = 0;\n                  0 <= palShort ? _j < palShort : _j > palShort;\n                  i = 0 <= palShort ? ++_j : --_j\n                ) {\n                  this.transparency.indexed.push(255);\n                }\n              }\n              break;\n            case 0:\n              this.transparency.grayscale = this.read(chunkSize)[0];\n              break;\n            case 2:\n              this.transparency.rgb = this.read(chunkSize);\n          }\n          break;\n        case \"tEXt\":\n          text = this.read(chunkSize);\n          index = text.indexOf(0);\n          key = String.fromCharCode.apply(String, text.slice(0, index));\n          this.text[key] = String.fromCharCode.apply(\n            String,\n            text.slice(index + 1)\n          );\n          break;\n        case \"IEND\":\n          if (frame) {\n            this.animation.frames.push(frame);\n          }\n          this.colors = function() {\n            switch (this.colorType) {\n              case 0:\n              case 3:\n              case 4:\n                return 1;\n              case 2:\n              case 6:\n                return 3;\n            }\n          }.call(this);\n          this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n          colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n          this.pixelBitlength = this.bits * colors;\n          this.colorSpace = function() {\n            switch (this.colors) {\n              case 1:\n                return \"DeviceGray\";\n              case 3:\n                return \"DeviceRGB\";\n            }\n          }.call(this);\n          this.imgData = new Uint8Array(this.imgData);\n          return;\n        default:\n          this.pos += chunkSize;\n      }\n      this.pos += 4;\n      if (this.pos > this.data.length) {\n        throw new Error(\"Incomplete or corrupt PNG file\");\n      }\n    }\n  }\n\n  PNG.prototype.read = function(bytes) {\n    var i, _i, _results;\n    _results = [];\n    for (\n      i = _i = 0;\n      0 <= bytes ? _i < bytes : _i > bytes;\n      i = 0 <= bytes ? ++_i : --_i\n    ) {\n      _results.push(this.data[this.pos++]);\n    }\n    return _results;\n  };\n\n  PNG.prototype.readUInt32 = function() {\n    var b1, b2, b3, b4;\n    b1 = this.data[this.pos++] << 24;\n    b2 = this.data[this.pos++] << 16;\n    b3 = this.data[this.pos++] << 8;\n    b4 = this.data[this.pos++];\n    return b1 | b2 | b3 | b4;\n  };\n\n  PNG.prototype.readUInt16 = function() {\n    var b1, b2;\n    b1 = this.data[this.pos++] << 8;\n    b2 = this.data[this.pos++];\n    return b1 | b2;\n  };\n\n  PNG.prototype.decodePixels = function(data) {\n    var pixelBytes = this.pixelBitlength / 8;\n    var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n    var pos = 0;\n    var _this = this;\n\n    if (data == null) {\n      data = this.imgData;\n    }\n    if (data.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    data = unzlibSync(data);\n    function pass(x0, y0, dx, dy) {\n      var abyte,\n        c,\n        col,\n        i,\n        left,\n        length,\n        p,\n        pa,\n        paeth,\n        pb,\n        pc,\n        pixels,\n        row,\n        scanlineLength,\n        upper,\n        upperLeft,\n        _i,\n        _j,\n        _k,\n        _l,\n        _m;\n      var w = Math.ceil((_this.width - x0) / dx),\n        h = Math.ceil((_this.height - y0) / dy);\n      var isFull = _this.width == w && _this.height == h;\n      scanlineLength = pixelBytes * w;\n      pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n      length = data.length;\n      row = 0;\n      c = 0;\n      while (row < h && pos < length) {\n        switch (data[pos++]) {\n          case 0:\n            for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n              pixels[c++] = data[pos++];\n            }\n            break;\n          case 1:\n            for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n              abyte = data[pos++];\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              pixels[c++] = (abyte + left) % 256;\n            }\n            break;\n          case 2:\n            for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              upper =\n                row &&\n                pixels[\n                  (row - 1) * scanlineLength +\n                    col * pixelBytes +\n                    (i % pixelBytes)\n                ];\n              pixels[c++] = (upper + abyte) % 256;\n            }\n            break;\n          case 3:\n            for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              upper =\n                row &&\n                pixels[\n                  (row - 1) * scanlineLength +\n                    col * pixelBytes +\n                    (i % pixelBytes)\n                ];\n              pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n            }\n            break;\n          case 4:\n            for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              if (row === 0) {\n                upper = upperLeft = 0;\n              } else {\n                upper =\n                  pixels[\n                    (row - 1) * scanlineLength +\n                      col * pixelBytes +\n                      (i % pixelBytes)\n                  ];\n                upperLeft =\n                  col &&\n                  pixels[\n                    (row - 1) * scanlineLength +\n                      (col - 1) * pixelBytes +\n                      (i % pixelBytes)\n                  ];\n              }\n              p = left + upper - upperLeft;\n              pa = Math.abs(p - left);\n              pb = Math.abs(p - upper);\n              pc = Math.abs(p - upperLeft);\n              if (pa <= pb && pa <= pc) {\n                paeth = left;\n              } else if (pb <= pc) {\n                paeth = upper;\n              } else {\n                paeth = upperLeft;\n              }\n              pixels[c++] = (abyte + paeth) % 256;\n            }\n            break;\n          default:\n            throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n        }\n        if (!isFull) {\n          var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n          var partPos = row * scanlineLength;\n          for (i = 0; i < w; i += 1) {\n            for (var j = 0; j < pixelBytes; j += 1)\n              fullPixels[fullPos++] = pixels[partPos++];\n            fullPos += (dx - 1) * pixelBytes;\n          }\n        }\n        row++;\n      }\n    }\n    if (_this.interlaceMethod == 1) {\n      /*\n          1 6 4 6 2 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n          3 6 4 6 3 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n        */\n      pass(0, 0, 8, 8); // 1\n      /* NOTE these seem to follow the pattern:\n       * pass(x, 0, 2*x, 2*x);\n       * pass(0, x,   x, 2*x);\n       * with x being 4, 2, 1.\n       */\n      pass(4, 0, 8, 8); // 2\n      pass(0, 4, 4, 8); // 3\n\n      pass(2, 0, 4, 4); // 4\n      pass(0, 2, 2, 4); // 5\n\n      pass(1, 0, 2, 2); // 6\n      pass(0, 1, 1, 2); // 7\n    } else {\n      pass(0, 0, 1, 1);\n    }\n    return fullPixels;\n  };\n\n  PNG.prototype.decodePalette = function() {\n    var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n    palette = this.palette;\n    transparency = this.transparency.indexed || [];\n    ret = new Uint8Array((transparency.length || 0) + palette.length);\n    pos = 0;\n    length = palette.length;\n    c = 0;\n    for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n      ret[pos++] = palette[i];\n      ret[pos++] = palette[i + 1];\n      ret[pos++] = palette[i + 2];\n      ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n    }\n    return ret;\n  };\n\n  PNG.prototype.copyToImageData = function(imageData, pixels) {\n    var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n    colors = this.colors;\n    palette = null;\n    alpha = this.hasAlphaChannel;\n    if (this.palette.length) {\n      palette =\n        (_ref = this._decodedPalette) != null\n          ? _ref\n          : (this._decodedPalette = this.decodePalette());\n      colors = 4;\n      alpha = true;\n    }\n    data = imageData.data || imageData;\n    length = data.length;\n    input = palette || pixels;\n    i = j = 0;\n    if (colors === 1) {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        v = input[k++];\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    } else {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    }\n  };\n\n  PNG.prototype.decode = function() {\n    var ret;\n    ret = new Uint8Array(this.width * this.height * 4);\n    this.copyToImageData(ret, this.decodePixels());\n    return ret;\n  };\n\n  var hasBrowserCanvas = function() {\n    if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n      try {\n        scratchCanvas = globalObject.document.createElement(\"canvas\");\n        scratchCtx = scratchCanvas.getContext(\"2d\");\n      } catch (e) {\n        return false;\n      }\n      return true;\n    }\n    return false;\n  };\n\n  hasBrowserCanvas();\n\n  makeImage = function(imageData) {\n    if (hasBrowserCanvas() === true) {\n      var img;\n      scratchCtx.width = imageData.width;\n      scratchCtx.height = imageData.height;\n      scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n      scratchCtx.putImageData(imageData, 0, 0);\n      img = new Image();\n      img.src = scratchCanvas.toDataURL();\n      return img;\n    }\n    throw new Error(\"This method requires a Browser with Canvas-capability.\");\n  };\n\n  PNG.prototype.decodeFrames = function(ctx) {\n    var frame, i, imageData, pixels, _i, _len, _ref, _results;\n    if (!this.animation) {\n      return;\n    }\n    _ref = this.animation.frames;\n    _results = [];\n    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n      frame = _ref[i];\n      imageData = ctx.createImageData(frame.width, frame.height);\n      pixels = this.decodePixels(new Uint8Array(frame.data));\n      this.copyToImageData(imageData, pixels);\n      frame.imageData = imageData;\n      _results.push((frame.image = makeImage(imageData)));\n    }\n    return _results;\n  };\n\n  PNG.prototype.renderFrame = function(ctx, number) {\n    var frame, frames, prev;\n    frames = this.animation.frames;\n    frame = frames[number];\n    prev = frames[number - 1];\n    if (number === 0) {\n      ctx.clearRect(0, 0, this.width, this.height);\n    }\n    if (\n      (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n    ) {\n      ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n    } else if (\n      (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n    ) {\n      ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n    }\n    if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n      ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n    }\n    return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n  };\n\n  PNG.prototype.animate = function(ctx) {\n    var doFrame,\n      frameNumber,\n      frames,\n      numFrames,\n      numPlays,\n      _ref,\n      _this = this;\n    frameNumber = 0;\n    (_ref = this.animation),\n      (numFrames = _ref.numFrames),\n      (frames = _ref.frames),\n      (numPlays = _ref.numPlays);\n    return (doFrame = function() {\n      var f, frame;\n      f = frameNumber++ % numFrames;\n      frame = frames[f];\n      _this.renderFrame(ctx, f);\n      if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n        return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n      }\n    })();\n  };\n\n  PNG.prototype.stopAnimation = function() {\n    var _ref;\n    return clearTimeout(\n      (_ref = this.animation) != null ? _ref._timeout : void 0\n    );\n  };\n\n  PNG.prototype.render = function(canvas) {\n    var ctx, data;\n    if (canvas._png) {\n      canvas._png.stopAnimation();\n    }\n    canvas._png = this;\n    canvas.width = this.width;\n    canvas.height = this.height;\n    ctx = canvas.getContext(\"2d\");\n    if (this.animation) {\n      this.decodeFrames(ctx);\n      return this.animate(ctx);\n    } else {\n      data = ctx.createImageData(this.width, this.height);\n      this.copyToImageData(data, this.decodePixels());\n      return ctx.putImageData(data, 0, 0);\n    }\n  };\n\n  return PNG;\n})();\n\nexport { PNG };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /*\n   * @see http://www.w3.org/TR/PNG-Chunks.html\n   *\n   Color    Allowed      Interpretation\n   Type     Bit Depths\n\n     0       1,2,4,8,16  Each pixel is a grayscale sample.\n\n     2       8,16        Each pixel is an R,G,B triple.\n\n     3       1,2,4,8     Each pixel is a palette index;\n                         a PLTE chunk must appear.\n\n     4       8,16        Each pixel is a grayscale sample,\n                         followed by an alpha sample.\n\n     6       8,16        Each pixel is an R,G,B triple,\n                         followed by an alpha sample.\n  */\n\n  /*\n   * PNG filter method types\n   *\n   * @see http://www.w3.org/TR/PNG-Filters.html\n   * @see http://www.libpng.org/pub/png/book/chapter09.html\n   *\n   * This is what the value 'Predictor' in decode params relates to\n   *\n   * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n   * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n   *\n     0       None\n     1       Sub\n     2       Up\n     3       Average\n     4       Paeth\n   */\n\n  var canCompress = function(value) {\n    return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n  };\n\n  var hasCompressionJS = function() {\n    return typeof zlibSync === \"function\";\n  };\n  var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n    var level = 4;\n    var filter_method = filterUp;\n\n    switch (compression) {\n      case jsPDFAPI.image_compression.FAST:\n        level = 1;\n        filter_method = filterSub;\n        break;\n\n      case jsPDFAPI.image_compression.MEDIUM:\n        level = 6;\n        filter_method = filterAverage;\n        break;\n\n      case jsPDFAPI.image_compression.SLOW:\n        level = 9;\n        filter_method = filterPaeth;\n        break;\n    }\n\n    bytes = applyPngFilterMethod(\n      bytes,\n      lineLength,\n      colorsPerPixel,\n      filter_method\n    );\n    var dat = zlibSync(bytes, { level: level });\n    return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n  };\n\n  var applyPngFilterMethod = function(\n    bytes,\n    lineLength,\n    colorsPerPixel,\n    filter_method\n  ) {\n    var lines = bytes.length / lineLength,\n      result = new Uint8Array(bytes.length + lines),\n      filter_methods = getFilterMethods(),\n      line,\n      prevLine,\n      offset;\n\n    for (var i = 0; i < lines; i += 1) {\n      offset = i * lineLength;\n      line = bytes.subarray(offset, offset + lineLength);\n\n      if (filter_method) {\n        result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n      } else {\n        var len = filter_methods.length,\n          results = [];\n\n        for (var j; j < len; j += 1) {\n          results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n        }\n\n        var ind = getIndexOfSmallestSum(results.concat());\n\n        result.set(results[ind], offset + i);\n      }\n\n      prevLine = line;\n    }\n\n    return result;\n  };\n\n  var filterNone = function(line) {\n    /*var result = new Uint8Array(line.length + 1);\n    result[0] = 0;\n    result.set(line, 1);*/\n\n    var result = Array.apply([], line);\n    result.unshift(0);\n\n    return result;\n  };\n\n  var filterSub = function(line, colorsPerPixel) {\n    var result = [],\n      len = line.length,\n      left;\n\n    result[0] = 1;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterUp = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      up;\n\n    result[0] = 2;\n\n    for (var i = 0; i < len; i += 1) {\n      up = (prevLine && prevLine[i]) || 0;\n      result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterAverage = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      left,\n      up;\n\n    result[0] = 3;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      up = (prevLine && prevLine[i]) || 0;\n      result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterPaeth = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      left,\n      up,\n      upLeft,\n      paeth;\n\n    result[0] = 4;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      up = (prevLine && prevLine[i]) || 0;\n      upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n      paeth = paethPredictor(left, up, upLeft);\n      result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var paethPredictor = function(left, up, upLeft) {\n    if (left === up && up === upLeft) {\n      return left;\n    }\n    var pLeft = Math.abs(up - upLeft),\n      pUp = Math.abs(left - upLeft),\n      pUpLeft = Math.abs(left + up - upLeft - upLeft);\n    return pLeft <= pUp && pLeft <= pUpLeft\n      ? left\n      : pUp <= pUpLeft\n      ? up\n      : upLeft;\n  };\n\n  var getFilterMethods = function() {\n    return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n  };\n\n  var getIndexOfSmallestSum = function(arrays) {\n    var sum = arrays.map(function(value) {\n      return value.reduce(function(pv, cv) {\n        return pv + Math.abs(cv);\n      }, 0);\n    });\n    return sum.indexOf(Math.min.apply(null, sum));\n  };\n\n  var getPredictorFromCompression = function(compression) {\n    var predictor;\n    switch (compression) {\n      case jsPDFAPI.image_compression.FAST:\n        predictor = 11;\n        break;\n\n      case jsPDFAPI.image_compression.MEDIUM:\n        predictor = 13;\n        break;\n\n      case jsPDFAPI.image_compression.SLOW:\n        predictor = 14;\n        break;\n\n      default:\n        predictor = 12;\n        break;\n    }\n    return predictor;\n  };\n\n  /**\n   * @name processPNG\n   * @function\n   * @ignore\n   */\n  jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n    \"use strict\";\n\n    var colorSpace,\n      filter = this.decode.FLATE_DECODE,\n      bitsPerComponent,\n      image,\n      decodeParameters = \"\",\n      trns,\n      colors,\n      pal,\n      smask,\n      pixels,\n      len,\n      alphaData,\n      imgData,\n      hasColors,\n      pixel,\n      i,\n      n;\n\n    if (this.__addimage__.isArrayBuffer(imageData))\n      imageData = new Uint8Array(imageData);\n\n    if (this.__addimage__.isArrayBufferView(imageData)) {\n      image = new PNG(imageData);\n      imageData = image.imgData;\n      bitsPerComponent = image.bits;\n      colorSpace = image.colorSpace;\n      colors = image.colors;\n\n      /*\n       * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n       *\n       * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n       *\n       * Extract alpha to create two separate images, using the alpha as a sMask\n       */\n      if ([4, 6].indexOf(image.colorType) !== -1) {\n        /*\n         * processes 8 bit RGBA and grayscale + alpha images\n         */\n        if (image.bits === 8) {\n          pixels =\n            image.pixelBitlength == 32\n              ? new Uint32Array(image.decodePixels().buffer)\n              : image.pixelBitlength == 16\n              ? new Uint16Array(image.decodePixels().buffer)\n              : new Uint8Array(image.decodePixels().buffer);\n          len = pixels.length;\n          imgData = new Uint8Array(len * image.colors);\n          alphaData = new Uint8Array(len);\n          var pDiff = image.pixelBitlength - image.bits;\n          i = 0;\n          n = 0;\n          var pbl;\n\n          for (; i < len; i++) {\n            pixel = pixels[i];\n            pbl = 0;\n\n            while (pbl < pDiff) {\n              imgData[n++] = (pixel >>> pbl) & 0xff;\n              pbl = pbl + image.bits;\n            }\n\n            alphaData[i] = (pixel >>> pbl) & 0xff;\n          }\n        }\n\n        /*\n         * processes 16 bit RGBA and grayscale + alpha images\n         */\n        if (image.bits === 16) {\n          pixels = new Uint32Array(image.decodePixels().buffer);\n          len = pixels.length;\n          imgData = new Uint8Array(\n            len * (32 / image.pixelBitlength) * image.colors\n          );\n          alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n          hasColors = image.colors > 1;\n          i = 0;\n          n = 0;\n          var a = 0;\n\n          while (i < len) {\n            pixel = pixels[i++];\n\n            imgData[n++] = (pixel >>> 0) & 0xff;\n\n            if (hasColors) {\n              imgData[n++] = (pixel >>> 16) & 0xff;\n\n              pixel = pixels[i++];\n              imgData[n++] = (pixel >>> 0) & 0xff;\n            }\n\n            alphaData[a++] = (pixel >>> 16) & 0xff;\n          }\n          bitsPerComponent = 8;\n        }\n\n        if (canCompress(compression)) {\n          imageData = compressBytes(\n            imgData,\n            image.width * image.colors,\n            image.colors,\n            compression\n          );\n          smask = compressBytes(alphaData, image.width, 1, compression);\n        } else {\n          imageData = imgData;\n          smask = alphaData;\n          filter = undefined;\n        }\n      }\n\n      /*\n       * Indexed png. Each pixel is a palette index.\n       */\n      if (image.colorType === 3) {\n        colorSpace = this.color_spaces.INDEXED;\n        pal = image.palette;\n\n        if (image.transparency.indexed) {\n          var trans = image.transparency.indexed;\n          var total = 0;\n          i = 0;\n          len = trans.length;\n\n          for (; i < len; ++i) {\n            total += trans[i];\n          }\n\n          total = total / 255;\n\n          /*\n           * a single color is specified as 100% transparent (0),\n           * so we set trns to use a /Mask with that index\n           */\n          if (total === len - 1 && trans.indexOf(0) !== -1) {\n            trns = [trans.indexOf(0)];\n\n            /*\n             * there's more than one colour within the palette that specifies\n             * a transparency value less than 255, so we unroll the pixels to create an image sMask\n             */\n          } else if (total !== len) {\n            pixels = image.decodePixels();\n            alphaData = new Uint8Array(pixels.length);\n            i = 0;\n            len = pixels.length;\n\n            for (; i < len; i++) {\n              alphaData[i] = trans[pixels[i]];\n            }\n\n            smask = compressBytes(alphaData, image.width, 1);\n          }\n        }\n      }\n\n      var predictor = getPredictorFromCompression(compression);\n\n      if (filter === this.decode.FLATE_DECODE) {\n        decodeParameters = \"/Predictor \" + predictor + \" \";\n      }\n      decodeParameters +=\n        \"/Colors \" +\n        colors +\n        \" /BitsPerComponent \" +\n        bitsPerComponent +\n        \" /Columns \" +\n        image.width;\n\n      if (\n        this.__addimage__.isArrayBuffer(imageData) ||\n        this.__addimage__.isArrayBufferView(imageData)\n      ) {\n        imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n      }\n\n      if (\n        (smask && this.__addimage__.isArrayBuffer(smask)) ||\n        this.__addimage__.isArrayBufferView(smask)\n      ) {\n        smask = this.__addimage__.arrayBufferToBinaryString(smask);\n      }\n\n      return {\n        alias: alias,\n        data: imageData,\n        index: index,\n        filter: filter,\n        decodeParameters: decodeParameters,\n        transparency: trns,\n        palette: pal,\n        sMask: smask,\n        predictor: predictor,\n        width: image.width,\n        height: image.height,\n        bitsPerComponent: bitsPerComponent,\n        colorSpace: colorSpace\n      };\n    }\n  };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression.  It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n  var p = 0;\n\n  var gopts = gopts === undefined ? {} : gopts;\n  var loop_count = gopts.loop === undefined ? null : gopts.loop;\n  var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n  if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n    throw new Error(\"Width/Height invalid.\");\n\n  function check_palette_and_num_colors(palette) {\n    var num_colors = palette.length;\n    if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n      throw new Error(\n        \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n      );\n    }\n    return num_colors;\n  }\n\n  // - Header.\n  buf[p++] = 0x47;\n  buf[p++] = 0x49;\n  buf[p++] = 0x46; // GIF\n  buf[p++] = 0x38;\n  buf[p++] = 0x39;\n  buf[p++] = 0x61; // 89a\n\n  // Handling of Global Color Table (palette) and background index.\n  var gp_num_colors_pow2 = 0;\n  var background = 0;\n  if (global_palette !== null) {\n    var gp_num_colors = check_palette_and_num_colors(global_palette);\n    while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n    gp_num_colors = 1 << gp_num_colors_pow2;\n    --gp_num_colors_pow2;\n    if (gopts.background !== undefined) {\n      background = gopts.background;\n      if (background >= gp_num_colors)\n        throw new Error(\"Background index out of range.\");\n      // The GIF spec states that a background index of 0 should be ignored, so\n      // this is probably a mistake and you really want to set it to another\n      // slot in the palette.  But actually in the end most browsers, etc end\n      // up ignoring this almost completely (including for dispose background).\n      if (background === 0)\n        throw new Error(\"Background index explicitly passed as 0.\");\n    }\n  }\n\n  // - Logical Screen Descriptor.\n  // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n  buf[p++] = width & 0xff;\n  buf[p++] = (width >> 8) & 0xff;\n  buf[p++] = height & 0xff;\n  buf[p++] = (height >> 8) & 0xff;\n  // NOTE: Indicates 0-bpp original color resolution (unused?).\n  buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n  buf[p++] = background; // Background Color Index.\n  buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n  // - Global Color Table\n  if (global_palette !== null) {\n    for (var i = 0, il = global_palette.length; i < il; ++i) {\n      var rgb = global_palette[i];\n      buf[p++] = (rgb >> 16) & 0xff;\n      buf[p++] = (rgb >> 8) & 0xff;\n      buf[p++] = rgb & 0xff;\n    }\n  }\n\n  if (loop_count !== null) {\n    // Netscape block for looping.\n    if (loop_count < 0 || loop_count > 65535)\n      throw new Error(\"Loop count invalid.\");\n    // Extension code, label, and length.\n    buf[p++] = 0x21;\n    buf[p++] = 0xff;\n    buf[p++] = 0x0b;\n    // NETSCAPE2.0\n    buf[p++] = 0x4e;\n    buf[p++] = 0x45;\n    buf[p++] = 0x54;\n    buf[p++] = 0x53;\n    buf[p++] = 0x43;\n    buf[p++] = 0x41;\n    buf[p++] = 0x50;\n    buf[p++] = 0x45;\n    buf[p++] = 0x32;\n    buf[p++] = 0x2e;\n    buf[p++] = 0x30;\n    // Sub-block\n    buf[p++] = 0x03;\n    buf[p++] = 0x01;\n    buf[p++] = loop_count & 0xff;\n    buf[p++] = (loop_count >> 8) & 0xff;\n    buf[p++] = 0x00; // Terminator.\n  }\n\n  var ended = false;\n\n  this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n    if (ended === true) {\n      --p;\n      ended = false;\n    } // Un-end.\n\n    opts = opts === undefined ? {} : opts;\n\n    // TODO(deanm): Bounds check x, y.  Do they need to be within the virtual\n    // canvas width/height, I imagine?\n    if (x < 0 || y < 0 || x > 65535 || y > 65535)\n      throw new Error(\"x/y invalid.\");\n\n    if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n      throw new Error(\"Width/Height invalid.\");\n\n    if (indexed_pixels.length < w * h)\n      throw new Error(\"Not enough pixels for the frame size.\");\n\n    var using_local_palette = true;\n    var palette = opts.palette;\n    if (palette === undefined || palette === null) {\n      using_local_palette = false;\n      palette = global_palette;\n    }\n\n    if (palette === undefined || palette === null)\n      throw new Error(\"Must supply either a local or global palette.\");\n\n    var num_colors = check_palette_and_num_colors(palette);\n\n    // Compute the min_code_size (power of 2), destroying num_colors.\n    var min_code_size = 0;\n    while ((num_colors >>= 1)) ++min_code_size;\n    num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n    var delay = opts.delay === undefined ? 0 : opts.delay;\n\n    // From the spec:\n    //     0 -   No disposal specified. The decoder is\n    //           not required to take any action.\n    //     1 -   Do not dispose. The graphic is to be left\n    //           in place.\n    //     2 -   Restore to background color. The area used by the\n    //           graphic must be restored to the background color.\n    //     3 -   Restore to previous. The decoder is required to\n    //           restore the area overwritten by the graphic with\n    //           what was there prior to rendering the graphic.\n    //  4-7 -    To be defined.\n    // NOTE(deanm): Dispose background doesn't really work, apparently most\n    // browsers ignore the background palette index and clear to transparency.\n    var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n    if (disposal < 0 || disposal > 3)\n      // 4-7 is reserved.\n      throw new Error(\"Disposal out of range.\");\n\n    var use_transparency = false;\n    var transparent_index = 0;\n    if (opts.transparent !== undefined && opts.transparent !== null) {\n      use_transparency = true;\n      transparent_index = opts.transparent;\n      if (transparent_index < 0 || transparent_index >= num_colors)\n        throw new Error(\"Transparent color index.\");\n    }\n\n    if (disposal !== 0 || use_transparency || delay !== 0) {\n      // - Graphics Control Extension\n      buf[p++] = 0x21;\n      buf[p++] = 0xf9; // Extension / Label.\n      buf[p++] = 4; // Byte size.\n\n      buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n      buf[p++] = delay & 0xff;\n      buf[p++] = (delay >> 8) & 0xff;\n      buf[p++] = transparent_index; // Transparent color index.\n      buf[p++] = 0; // Block Terminator.\n    }\n\n    // - Image Descriptor\n    buf[p++] = 0x2c; // Image Seperator.\n    buf[p++] = x & 0xff;\n    buf[p++] = (x >> 8) & 0xff; // Left.\n    buf[p++] = y & 0xff;\n    buf[p++] = (y >> 8) & 0xff; // Top.\n    buf[p++] = w & 0xff;\n    buf[p++] = (w >> 8) & 0xff;\n    buf[p++] = h & 0xff;\n    buf[p++] = (h >> 8) & 0xff;\n    // NOTE: No sort flag (unused?).\n    // TODO(deanm): Support interlace.\n    buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n    // - Local Color Table\n    if (using_local_palette === true) {\n      for (var i = 0, il = palette.length; i < il; ++i) {\n        var rgb = palette[i];\n        buf[p++] = (rgb >> 16) & 0xff;\n        buf[p++] = (rgb >> 8) & 0xff;\n        buf[p++] = rgb & 0xff;\n      }\n    }\n\n    p = GifWriterOutputLZWCodeStream(\n      buf,\n      p,\n      min_code_size < 2 ? 2 : min_code_size,\n      indexed_pixels\n    );\n\n    return p;\n  };\n\n  this.end = function() {\n    if (ended === false) {\n      buf[p++] = 0x3b; // Trailer.\n      ended = true;\n    }\n    return p;\n  };\n\n  this.getOutputBuffer = function() {\n    return buf;\n  };\n  this.setOutputBuffer = function(v) {\n    buf = v;\n  };\n  this.getOutputBufferPosition = function() {\n    return p;\n  };\n  this.setOutputBufferPosition = function(v) {\n    p = v;\n  };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n  buf[p++] = min_code_size;\n  var cur_subblock = p++; // Pointing at the length field.\n\n  var clear_code = 1 << min_code_size;\n  var code_mask = clear_code - 1;\n  var eoi_code = clear_code + 1;\n  var next_code = eoi_code + 1;\n\n  var cur_code_size = min_code_size + 1; // Number of bits per code.\n  var cur_shift = 0;\n  // We have at most 12-bit codes, so we should have to hold a max of 19\n  // bits here (and then we would write out).\n  var cur = 0;\n\n  function emit_bytes_to_buffer(bit_block_size) {\n    while (cur_shift >= bit_block_size) {\n      buf[p++] = cur & 0xff;\n      cur >>= 8;\n      cur_shift -= 8;\n      if (p === cur_subblock + 256) {\n        // Finished a subblock.\n        buf[cur_subblock] = 255;\n        cur_subblock = p++;\n      }\n    }\n  }\n\n  function emit_code(c) {\n    cur |= c << cur_shift;\n    cur_shift += cur_code_size;\n    emit_bytes_to_buffer(8);\n  }\n\n  // I am not an expert on the topic, and I don't want to write a thesis.\n  // However, it is good to outline here the basic algorithm and the few data\n  // structures and optimizations here that make this implementation fast.\n  // The basic idea behind LZW is to build a table of previously seen runs\n  // addressed by a short id (herein called output code).  All data is\n  // referenced by a code, which represents one or more values from the\n  // original input stream.  All input bytes can be referenced as the same\n  // value as an output code.  So if you didn't want any compression, you\n  // could more or less just output the original bytes as codes (there are\n  // some details to this, but it is the idea).  In order to achieve\n  // compression, values greater then the input range (codes can be up to\n  // 12-bit while input only 8-bit) represent a sequence of previously seen\n  // inputs.  The decompressor is able to build the same mapping while\n  // decoding, so there is always a shared common knowledge between the\n  // encoding and decoder, which is also important for \"timing\" aspects like\n  // how to handle variable bit width code encoding.\n  //\n  // One obvious but very important consequence of the table system is there\n  // is always a unique id (at most 12-bits) to map the runs.  'A' might be\n  // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc.  This relationship\n  // can be used for an effecient lookup strategy for the code mapping.  We\n  // need to know if a run has been seen before, and be able to map that run\n  // to the output code.  Since we start with known unique ids (input bytes),\n  // and then from those build more unique ids (table entries), we can\n  // continue this chain (almost like a linked list) to always have small\n  // integer values that represent the current byte chains in the encoder.\n  // This means instead of tracking the input bytes (AAAABCD) to know our\n  // current state, we can track the table entry for AAAABC (it is guaranteed\n  // to exist by the nature of the algorithm) and the next character D.\n  // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n  // unique.  This allows us to create a simple lookup key for mapping input\n  // sequences to codes (table indices) without having to store or search\n  // any of the code sequences.  So if 'AAAA' has a table entry of 12, the\n  // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n  // key.  This leads to a integer value at most 20-bits, which can always\n  // fit in an SMI value and be used as a fast sparse array / object key.\n\n  // Output code for the current contents of the index buffer.\n  var ib_code = index_stream[0] & code_mask; // Load first input index.\n  var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n  emit_code(clear_code); // Spec says first code should be a clear code.\n\n  // First index already loaded, process the rest of the stream.\n  for (var i = 1, il = index_stream.length; i < il; ++i) {\n    var k = index_stream[i] & code_mask;\n    var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n    var cur_code = code_table[cur_key]; // buffer + k.\n\n    // Check if we have to create a new code table entry.\n    if (cur_code === undefined) {\n      // We don't have buffer + k.\n      // Emit index buffer (without k).\n      // This is an inline version of emit_code, because this is the core\n      // writing routine of the compressor (and V8 cannot inline emit_code\n      // because it is a closure here in a different context).  Additionally\n      // we can call emit_byte_to_buffer less often, because we can have\n      // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n      // be 12-bits, so can safely have 18-bits there without overflow.\n      // emit_code(ib_code);\n      cur |= ib_code << cur_shift;\n      cur_shift += cur_code_size;\n      while (cur_shift >= 8) {\n        buf[p++] = cur & 0xff;\n        cur >>= 8;\n        cur_shift -= 8;\n        if (p === cur_subblock + 256) {\n          // Finished a subblock.\n          buf[cur_subblock] = 255;\n          cur_subblock = p++;\n        }\n      }\n\n      if (next_code === 4096) {\n        // Table full, need a clear.\n        emit_code(clear_code);\n        next_code = eoi_code + 1;\n        cur_code_size = min_code_size + 1;\n        code_table = {};\n      } else {\n        // Table not full, insert a new entry.\n        // Increase our variable bit code sizes if necessary.  This is a bit\n        // tricky as it is based on \"timing\" between the encoding and\n        // decoder.  From the encoders perspective this should happen after\n        // we've already emitted the index buffer and are about to create the\n        // first table entry that would overflow our current code bit size.\n        if (next_code >= 1 << cur_code_size) ++cur_code_size;\n        code_table[cur_key] = next_code++; // Insert into code table.\n      }\n\n      ib_code = k; // Index buffer to single input k.\n    } else {\n      ib_code = cur_code; // Index buffer to sequence in code table.\n    }\n  }\n\n  emit_code(ib_code); // There will still be something in the index buffer.\n  emit_code(eoi_code); // End Of Information.\n\n  // Flush / finalize the sub-blocks stream to the buffer.\n  emit_bytes_to_buffer(1);\n\n  // Finish the sub-blocks, writing out any unfinished lengths and\n  // terminating with a sub-block of length 0.  If we have already started\n  // but not yet used a sub-block it can just become the terminator.\n  if (cur_subblock + 1 === p) {\n    // Started but unused.\n    buf[cur_subblock] = 0;\n  } else {\n    // Started and used, write length and additional terminator block.\n    buf[cur_subblock] = p - cur_subblock - 1;\n    buf[p++] = 0;\n  }\n  return p;\n}\n\nfunction GifReader(buf) {\n  var p = 0;\n\n  // - Header (GIF87a or GIF89a).\n  if (\n    buf[p++] !== 0x47 ||\n    buf[p++] !== 0x49 ||\n    buf[p++] !== 0x46 ||\n    buf[p++] !== 0x38 ||\n    ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n    buf[p++] !== 0x61\n  ) {\n    throw new Error(\"Invalid GIF 87a/89a header.\");\n  }\n\n  // - Logical Screen Descriptor.\n  var width = buf[p++] | (buf[p++] << 8);\n  var height = buf[p++] | (buf[p++] << 8);\n  var pf0 = buf[p++]; // <Packed Fields>.\n  var global_palette_flag = pf0 >> 7;\n  var num_global_colors_pow2 = pf0 & 0x7;\n  var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n  var background = buf[p++];\n  buf[p++]; // Pixel aspect ratio (unused?).\n\n  var global_palette_offset = null;\n  var global_palette_size = null;\n\n  if (global_palette_flag) {\n    global_palette_offset = p;\n    global_palette_size = num_global_colors;\n    p += num_global_colors * 3; // Seek past palette.\n  }\n\n  var no_eof = true;\n\n  var frames = [];\n\n  var delay = 0;\n  var transparent_index = null;\n  var disposal = 0; // 0 - No disposal specified.\n  var loop_count = null;\n\n  this.width = width;\n  this.height = height;\n\n  while (no_eof && p < buf.length) {\n    switch (buf[p++]) {\n      case 0x21: // Graphics Control Extension Block\n        switch (buf[p++]) {\n          case 0xff: // Application specific block\n            // Try if it's a Netscape block (with animation loop counter).\n            if (\n              buf[p] !== 0x0b || // 21 FF already read, check block size.\n              // NETSCAPE2.0\n              (buf[p + 1] == 0x4e &&\n                buf[p + 2] == 0x45 &&\n                buf[p + 3] == 0x54 &&\n                buf[p + 4] == 0x53 &&\n                buf[p + 5] == 0x43 &&\n                buf[p + 6] == 0x41 &&\n                buf[p + 7] == 0x50 &&\n                buf[p + 8] == 0x45 &&\n                buf[p + 9] == 0x32 &&\n                buf[p + 10] == 0x2e &&\n                buf[p + 11] == 0x30 &&\n                // Sub-block\n                buf[p + 12] == 0x03 &&\n                buf[p + 13] == 0x01 &&\n                buf[p + 16] == 0)\n            ) {\n              p += 14;\n              loop_count = buf[p++] | (buf[p++] << 8);\n              p++; // Skip terminator.\n            } else {\n              // We don't know what it is, just try to get past it.\n              p += 12;\n              while (true) {\n                // Seek through subblocks.\n                var block_size = buf[p++];\n                // Bad block size (ex: undefined from an out of bounds read).\n                if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n                if (block_size === 0) break; // 0 size is terminator\n                p += block_size;\n              }\n            }\n            break;\n\n          case 0xf9: // Graphics Control Extension\n            if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n              throw new Error(\"Invalid graphics extension block.\");\n            var pf1 = buf[p++];\n            delay = buf[p++] | (buf[p++] << 8);\n            transparent_index = buf[p++];\n            if ((pf1 & 1) === 0) transparent_index = null;\n            disposal = (pf1 >> 2) & 0x7;\n            p++; // Skip terminator.\n            break;\n\n          case 0xfe: // Comment Extension.\n            while (true) {\n              // Seek through subblocks.\n              var block_size = buf[p++];\n              // Bad block size (ex: undefined from an out of bounds read).\n              if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n              if (block_size === 0) break; // 0 size is terminator\n              // console.log(buf.slice(p, p+block_size).toString('ascii'));\n              p += block_size;\n            }\n            break;\n\n          default:\n            throw new Error(\n              \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n            );\n        }\n        break;\n\n      case 0x2c: // Image Descriptor.\n        var x = buf[p++] | (buf[p++] << 8);\n        var y = buf[p++] | (buf[p++] << 8);\n        var w = buf[p++] | (buf[p++] << 8);\n        var h = buf[p++] | (buf[p++] << 8);\n        var pf2 = buf[p++];\n        var local_palette_flag = pf2 >> 7;\n        var interlace_flag = (pf2 >> 6) & 1;\n        var num_local_colors_pow2 = pf2 & 0x7;\n        var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n        var palette_offset = global_palette_offset;\n        var palette_size = global_palette_size;\n        var has_local_palette = false;\n        if (local_palette_flag) {\n          var has_local_palette = true;\n          palette_offset = p; // Override with local palette.\n          palette_size = num_local_colors;\n          p += num_local_colors * 3; // Seek past palette.\n        }\n\n        var data_offset = p;\n\n        p++; // codesize\n        while (true) {\n          var block_size = buf[p++];\n          // Bad block size (ex: undefined from an out of bounds read).\n          if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n          if (block_size === 0) break; // 0 size is terminator\n          p += block_size;\n        }\n\n        frames.push({\n          x: x,\n          y: y,\n          width: w,\n          height: h,\n          has_local_palette: has_local_palette,\n          palette_offset: palette_offset,\n          palette_size: palette_size,\n          data_offset: data_offset,\n          data_length: p - data_offset,\n          transparent_index: transparent_index,\n          interlaced: !!interlace_flag,\n          delay: delay,\n          disposal: disposal\n        });\n        break;\n\n      case 0x3b: // Trailer Marker (end of file).\n        no_eof = false;\n        break;\n\n      default:\n        throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n        break;\n    }\n  }\n\n  this.numFrames = function() {\n    return frames.length;\n  };\n\n  this.loopCount = function() {\n    return loop_count;\n  };\n\n  this.frameInfo = function(frame_num) {\n    if (frame_num < 0 || frame_num >= frames.length)\n      throw new Error(\"Frame index out of range.\");\n    return frames[frame_num];\n  };\n\n  this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n    var frame = this.frameInfo(frame_num);\n    var num_pixels = frame.width * frame.height;\n    var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n    GifReaderLZWOutputIndexStream(\n      buf,\n      frame.data_offset,\n      index_stream,\n      num_pixels\n    );\n    var palette_offset = frame.palette_offset;\n\n    // NOTE(deanm): It seems to be much faster to compare index to 256 than\n    // to === null.  Not sure why, but CompareStub_EQ_STRICT shows up high in\n    // the profile, not sure if it's related to using a Uint8Array.\n    var trans = frame.transparent_index;\n    if (trans === null) trans = 256;\n\n    // We are possibly just blitting to a portion of the entire frame.\n    // That is a subrect within the framerect, so the additional pixels\n    // must be skipped over after we finished a scanline.\n    var framewidth = frame.width;\n    var framestride = width - framewidth;\n    var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n    // Output indices of the top left and bottom right corners of the subrect.\n    var opbeg = (frame.y * width + frame.x) * 4;\n    var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n    var op = opbeg;\n\n    var scanstride = framestride * 4;\n\n    // Use scanstride to skip past the rows when interlacing.  This is skipping\n    // 7 rows for the first two passes, then 3 then 1.\n    if (frame.interlaced === true) {\n      scanstride += width * 4 * 7; // Pass 1.\n    }\n\n    var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n    for (var i = 0, il = index_stream.length; i < il; ++i) {\n      var index = index_stream[i];\n\n      if (xleft === 0) {\n        // Beginning of new scan line\n        op += scanstride;\n        xleft = framewidth;\n        if (op >= opend) {\n          // Catch the wrap to switch passes when interlacing.\n          scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n          // interlaceskip / 2 * 4 is interlaceskip << 1.\n          op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n          interlaceskip >>= 1;\n        }\n      }\n\n      if (index === trans) {\n        op += 4;\n      } else {\n        var r = buf[palette_offset + index * 3];\n        var g = buf[palette_offset + index * 3 + 1];\n        var b = buf[palette_offset + index * 3 + 2];\n        pixels[op++] = b;\n        pixels[op++] = g;\n        pixels[op++] = r;\n        pixels[op++] = 255;\n      }\n      --xleft;\n    }\n  };\n\n  // I will go to copy and paste hell one day...\n  this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n    var frame = this.frameInfo(frame_num);\n    var num_pixels = frame.width * frame.height;\n    var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n    GifReaderLZWOutputIndexStream(\n      buf,\n      frame.data_offset,\n      index_stream,\n      num_pixels\n    );\n    var palette_offset = frame.palette_offset;\n\n    // NOTE(deanm): It seems to be much faster to compare index to 256 than\n    // to === null.  Not sure why, but CompareStub_EQ_STRICT shows up high in\n    // the profile, not sure if it's related to using a Uint8Array.\n    var trans = frame.transparent_index;\n    if (trans === null) trans = 256;\n\n    // We are possibly just blitting to a portion of the entire frame.\n    // That is a subrect within the framerect, so the additional pixels\n    // must be skipped over after we finished a scanline.\n    var framewidth = frame.width;\n    var framestride = width - framewidth;\n    var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n    // Output indices of the top left and bottom right corners of the subrect.\n    var opbeg = (frame.y * width + frame.x) * 4;\n    var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n    var op = opbeg;\n\n    var scanstride = framestride * 4;\n\n    // Use scanstride to skip past the rows when interlacing.  This is skipping\n    // 7 rows for the first two passes, then 3 then 1.\n    if (frame.interlaced === true) {\n      scanstride += width * 4 * 7; // Pass 1.\n    }\n\n    var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n    for (var i = 0, il = index_stream.length; i < il; ++i) {\n      var index = index_stream[i];\n\n      if (xleft === 0) {\n        // Beginning of new scan line\n        op += scanstride;\n        xleft = framewidth;\n        if (op >= opend) {\n          // Catch the wrap to switch passes when interlacing.\n          scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n          // interlaceskip / 2 * 4 is interlaceskip << 1.\n          op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n          interlaceskip >>= 1;\n        }\n      }\n\n      if (index === trans) {\n        op += 4;\n      } else {\n        var r = buf[palette_offset + index * 3];\n        var g = buf[palette_offset + index * 3 + 1];\n        var b = buf[palette_offset + index * 3 + 2];\n        pixels[op++] = r;\n        pixels[op++] = g;\n        pixels[op++] = b;\n        pixels[op++] = 255;\n      }\n      --xleft;\n    }\n  };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n  var min_code_size = code_stream[p++];\n\n  var clear_code = 1 << min_code_size;\n  var eoi_code = clear_code + 1;\n  var next_code = eoi_code + 1;\n\n  var cur_code_size = min_code_size + 1; // Number of bits per code.\n  // NOTE: This shares the same name as the encoder, but has a different\n  // meaning here.  Here this masks each code coming from the code stream.\n  var code_mask = (1 << cur_code_size) - 1;\n  var cur_shift = 0;\n  var cur = 0;\n\n  var op = 0; // Output pointer.\n\n  var subblock_size = code_stream[p++];\n\n  // TODO(deanm): Would using a TypedArray be any faster?  At least it would\n  // solve the fast mode / backing store uncertainty.\n  // var code_table = Array(4096);\n  var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n  var prev_code = null; // Track code-1.\n\n  while (true) {\n    // Read up to two bytes, making sure we always 12-bits for max sized code.\n    while (cur_shift < 16) {\n      if (subblock_size === 0) break; // No more data to be read.\n\n      cur |= code_stream[p++] << cur_shift;\n      cur_shift += 8;\n\n      if (subblock_size === 1) {\n        // Never let it get to 0 to hold logic above.\n        subblock_size = code_stream[p++]; // Next subblock.\n      } else {\n        --subblock_size;\n      }\n    }\n\n    // TODO(deanm): We should never really get here, we should have received\n    // and EOI.\n    if (cur_shift < cur_code_size) break;\n\n    var code = cur & code_mask;\n    cur >>= cur_code_size;\n    cur_shift -= cur_code_size;\n\n    // TODO(deanm): Maybe should check that the first code was a clear code,\n    // at least this is what you're supposed to do.  But actually our encoder\n    // now doesn't emit a clear code first anyway.\n    if (code === clear_code) {\n      // We don't actually have to clear the table.  This could be a good idea\n      // for greater error checking, but we don't really do any anyway.  We\n      // will just track it with next_code and overwrite old entries.\n\n      next_code = eoi_code + 1;\n      cur_code_size = min_code_size + 1;\n      code_mask = (1 << cur_code_size) - 1;\n\n      // Don't update prev_code ?\n      prev_code = null;\n      continue;\n    } else if (code === eoi_code) {\n      break;\n    }\n\n    // We have a similar situation as the decoder, where we want to store\n    // variable length entries (code table entries), but we want to do in a\n    // faster manner than an array of arrays.  The code below stores sort of a\n    // linked list within the code table, and then \"chases\" through it to\n    // construct the dictionary entries.  When a new entry is created, just the\n    // last byte is stored, and the rest (prefix) of the entry is only\n    // referenced by its table entry.  Then the code chases through the\n    // prefixes until it reaches a single byte code.  We have to chase twice,\n    // first to compute the length, and then to actually copy the data to the\n    // output (backwards, since we know the length).  The alternative would be\n    // storing something in an intermediate stack, but that doesn't make any\n    // more sense.  I implemented an approach where it also stored the length\n    // in the code table, although it's a bit tricky because you run out of\n    // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n    // entries are generally not the long).  Even when I created benchmarks for\n    // very long table entries the complexity did not seem worth it.\n    // The code table stores the prefix entry in 12 bits and then the suffix\n    // byte in 8 bits, so each entry is 20 bits.\n\n    var chase_code = code < next_code ? code : prev_code;\n\n    // Chase what we will output, either {CODE} or {CODE-1}.\n    var chase_length = 0;\n    var chase = chase_code;\n    while (chase > clear_code) {\n      chase = code_table[chase] >> 8;\n      ++chase_length;\n    }\n\n    var k = chase;\n\n    var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n    if (op_end > output_length) {\n      console.log(\"Warning, gif stream longer than expected.\");\n      return;\n    }\n\n    // Already have the first byte from the chase, might as well write it fast.\n    output[op++] = k;\n\n    op += chase_length;\n    var b = op; // Track pointer, writing backwards.\n\n    if (chase_code !== code)\n      // The case of emitting {CODE-1} + k.\n      output[op++] = k;\n\n    chase = chase_code;\n    while (chase_length--) {\n      chase = code_table[chase];\n      output[--b] = chase & 0xff; // Write backwards.\n      chase >>= 8; // Pull down to the prefix code.\n    }\n\n    if (prev_code !== null && next_code < 4096) {\n      code_table[next_code++] = (prev_code << 8) | k;\n      // TODO(deanm): Figure out this clearing vs code growth logic better.  I\n      // have an feeling that it should just happen somewhere else, for now it\n      // is awkward between when we grow past the max and then hit a clear code.\n      // For now just check if we hit the max 12-bits (then a clear code should\n      // follow, also of course encoded in 12-bits).\n      if (next_code >= code_mask + 1 && cur_code_size < 12) {\n        ++cur_code_size;\n        code_mask = (code_mask << 1) | 1;\n      }\n    }\n\n    prev_code = code;\n  }\n\n  if (op !== output_length) {\n    console.log(\"Warning, gif stream shorter than expected.\");\n  }\n\n  return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n  Copyright (c) 2008, Adobe Systems Incorporated\n  All rights reserved.\n\n  Redistribution and use in source and binary forms, with or without \n  modification, are permitted provided that the following conditions are\n  met:\n\n  * Redistributions of source code must retain the above copyright notice, \n    this list of conditions and the following disclaimer.\n  \n  * Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in the \n    documentation and/or other materials provided with the distribution.\n  \n  * Neither the name of Adobe Systems Incorporated nor the names of its \n    contributors may be used to endorse or promote products derived from \n    this software without specific prior written permission.\n\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n  IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n  var ffloor = Math.floor;\n  var YTable = new Array(64);\n  var UVTable = new Array(64);\n  var fdtbl_Y = new Array(64);\n  var fdtbl_UV = new Array(64);\n  var YDC_HT;\n  var UVDC_HT;\n  var YAC_HT;\n  var UVAC_HT;\n\n  var bitcode = new Array(65535);\n  var category = new Array(65535);\n  var outputfDCTQuant = new Array(64);\n  var DU = new Array(64);\n  var byteout = [];\n  var bytenew = 0;\n  var bytepos = 7;\n\n  var YDU = new Array(64);\n  var UDU = new Array(64);\n  var VDU = new Array(64);\n  var clt = new Array(256);\n  var RGB_YUV_TABLE = new Array(2048);\n  var currentQuality;\n\n  var ZigZag = [\n    0,\n    1,\n    5,\n    6,\n    14,\n    15,\n    27,\n    28,\n    2,\n    4,\n    7,\n    13,\n    16,\n    26,\n    29,\n    42,\n    3,\n    8,\n    12,\n    17,\n    25,\n    30,\n    41,\n    43,\n    9,\n    11,\n    18,\n    24,\n    31,\n    40,\n    44,\n    53,\n    10,\n    19,\n    23,\n    32,\n    39,\n    45,\n    52,\n    54,\n    20,\n    22,\n    33,\n    38,\n    46,\n    51,\n    55,\n    60,\n    21,\n    34,\n    37,\n    47,\n    50,\n    56,\n    59,\n    61,\n    35,\n    36,\n    48,\n    49,\n    57,\n    58,\n    62,\n    63\n  ];\n\n  var std_dc_luminance_nrcodes = [\n    0,\n    0,\n    1,\n    5,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0\n  ];\n  var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  var std_ac_luminance_nrcodes = [\n    0,\n    0,\n    2,\n    1,\n    3,\n    3,\n    2,\n    4,\n    3,\n    5,\n    5,\n    4,\n    4,\n    0,\n    0,\n    1,\n    0x7d\n  ];\n  var std_ac_luminance_values = [\n    0x01,\n    0x02,\n    0x03,\n    0x00,\n    0x04,\n    0x11,\n    0x05,\n    0x12,\n    0x21,\n    0x31,\n    0x41,\n    0x06,\n    0x13,\n    0x51,\n    0x61,\n    0x07,\n    0x22,\n    0x71,\n    0x14,\n    0x32,\n    0x81,\n    0x91,\n    0xa1,\n    0x08,\n    0x23,\n    0x42,\n    0xb1,\n    0xc1,\n    0x15,\n    0x52,\n    0xd1,\n    0xf0,\n    0x24,\n    0x33,\n    0x62,\n    0x72,\n    0x82,\n    0x09,\n    0x0a,\n    0x16,\n    0x17,\n    0x18,\n    0x19,\n    0x1a,\n    0x25,\n    0x26,\n    0x27,\n    0x28,\n    0x29,\n    0x2a,\n    0x34,\n    0x35,\n    0x36,\n    0x37,\n    0x38,\n    0x39,\n    0x3a,\n    0x43,\n    0x44,\n    0x45,\n    0x46,\n    0x47,\n    0x48,\n    0x49,\n    0x4a,\n    0x53,\n    0x54,\n    0x55,\n    0x56,\n    0x57,\n    0x58,\n    0x59,\n    0x5a,\n    0x63,\n    0x64,\n    0x65,\n    0x66,\n    0x67,\n    0x68,\n    0x69,\n    0x6a,\n    0x73,\n    0x74,\n    0x75,\n    0x76,\n    0x77,\n    0x78,\n    0x79,\n    0x7a,\n    0x83,\n    0x84,\n    0x85,\n    0x86,\n    0x87,\n    0x88,\n    0x89,\n    0x8a,\n    0x92,\n    0x93,\n    0x94,\n    0x95,\n    0x96,\n    0x97,\n    0x98,\n    0x99,\n    0x9a,\n    0xa2,\n    0xa3,\n    0xa4,\n    0xa5,\n    0xa6,\n    0xa7,\n    0xa8,\n    0xa9,\n    0xaa,\n    0xb2,\n    0xb3,\n    0xb4,\n    0xb5,\n    0xb6,\n    0xb7,\n    0xb8,\n    0xb9,\n    0xba,\n    0xc2,\n    0xc3,\n    0xc4,\n    0xc5,\n    0xc6,\n    0xc7,\n    0xc8,\n    0xc9,\n    0xca,\n    0xd2,\n    0xd3,\n    0xd4,\n    0xd5,\n    0xd6,\n    0xd7,\n    0xd8,\n    0xd9,\n    0xda,\n    0xe1,\n    0xe2,\n    0xe3,\n    0xe4,\n    0xe5,\n    0xe6,\n    0xe7,\n    0xe8,\n    0xe9,\n    0xea,\n    0xf1,\n    0xf2,\n    0xf3,\n    0xf4,\n    0xf5,\n    0xf6,\n    0xf7,\n    0xf8,\n    0xf9,\n    0xfa\n  ];\n\n  var std_dc_chrominance_nrcodes = [\n    0,\n    0,\n    3,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    0,\n    0,\n    0,\n    0,\n    0\n  ];\n  var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  var std_ac_chrominance_nrcodes = [\n    0,\n    0,\n    2,\n    1,\n    2,\n    4,\n    4,\n    3,\n    4,\n    7,\n    5,\n    4,\n    4,\n    0,\n    1,\n    2,\n    0x77\n  ];\n  var std_ac_chrominance_values = [\n    0x00,\n    0x01,\n    0x02,\n    0x03,\n    0x11,\n    0x04,\n    0x05,\n    0x21,\n    0x31,\n    0x06,\n    0x12,\n    0x41,\n    0x51,\n    0x07,\n    0x61,\n    0x71,\n    0x13,\n    0x22,\n    0x32,\n    0x81,\n    0x08,\n    0x14,\n    0x42,\n    0x91,\n    0xa1,\n    0xb1,\n    0xc1,\n    0x09,\n    0x23,\n    0x33,\n    0x52,\n    0xf0,\n    0x15,\n    0x62,\n    0x72,\n    0xd1,\n    0x0a,\n    0x16,\n    0x24,\n    0x34,\n    0xe1,\n    0x25,\n    0xf1,\n    0x17,\n    0x18,\n    0x19,\n    0x1a,\n    0x26,\n    0x27,\n    0x28,\n    0x29,\n    0x2a,\n    0x35,\n    0x36,\n    0x37,\n    0x38,\n    0x39,\n    0x3a,\n    0x43,\n    0x44,\n    0x45,\n    0x46,\n    0x47,\n    0x48,\n    0x49,\n    0x4a,\n    0x53,\n    0x54,\n    0x55,\n    0x56,\n    0x57,\n    0x58,\n    0x59,\n    0x5a,\n    0x63,\n    0x64,\n    0x65,\n    0x66,\n    0x67,\n    0x68,\n    0x69,\n    0x6a,\n    0x73,\n    0x74,\n    0x75,\n    0x76,\n    0x77,\n    0x78,\n    0x79,\n    0x7a,\n    0x82,\n    0x83,\n    0x84,\n    0x85,\n    0x86,\n    0x87,\n    0x88,\n    0x89,\n    0x8a,\n    0x92,\n    0x93,\n    0x94,\n    0x95,\n    0x96,\n    0x97,\n    0x98,\n    0x99,\n    0x9a,\n    0xa2,\n    0xa3,\n    0xa4,\n    0xa5,\n    0xa6,\n    0xa7,\n    0xa8,\n    0xa9,\n    0xaa,\n    0xb2,\n    0xb3,\n    0xb4,\n    0xb5,\n    0xb6,\n    0xb7,\n    0xb8,\n    0xb9,\n    0xba,\n    0xc2,\n    0xc3,\n    0xc4,\n    0xc5,\n    0xc6,\n    0xc7,\n    0xc8,\n    0xc9,\n    0xca,\n    0xd2,\n    0xd3,\n    0xd4,\n    0xd5,\n    0xd6,\n    0xd7,\n    0xd8,\n    0xd9,\n    0xda,\n    0xe2,\n    0xe3,\n    0xe4,\n    0xe5,\n    0xe6,\n    0xe7,\n    0xe8,\n    0xe9,\n    0xea,\n    0xf2,\n    0xf3,\n    0xf4,\n    0xf5,\n    0xf6,\n    0xf7,\n    0xf8,\n    0xf9,\n    0xfa\n  ];\n\n  function initQuantTables(sf) {\n    var YQT = [\n      16,\n      11,\n      10,\n      16,\n      24,\n      40,\n      51,\n      61,\n      12,\n      12,\n      14,\n      19,\n      26,\n      58,\n      60,\n      55,\n      14,\n      13,\n      16,\n      24,\n      40,\n      57,\n      69,\n      56,\n      14,\n      17,\n      22,\n      29,\n      51,\n      87,\n      80,\n      62,\n      18,\n      22,\n      37,\n      56,\n      68,\n      109,\n      103,\n      77,\n      24,\n      35,\n      55,\n      64,\n      81,\n      104,\n      113,\n      92,\n      49,\n      64,\n      78,\n      87,\n      103,\n      121,\n      120,\n      101,\n      72,\n      92,\n      95,\n      98,\n      112,\n      100,\n      103,\n      99\n    ];\n\n    for (var i = 0; i < 64; i++) {\n      var t = ffloor((YQT[i] * sf + 50) / 100);\n      t = Math.min(Math.max(t, 1), 255);\n      YTable[ZigZag[i]] = t;\n    }\n    var UVQT = [\n      17,\n      18,\n      24,\n      47,\n      99,\n      99,\n      99,\n      99,\n      18,\n      21,\n      26,\n      66,\n      99,\n      99,\n      99,\n      99,\n      24,\n      26,\n      56,\n      99,\n      99,\n      99,\n      99,\n      99,\n      47,\n      66,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99\n    ];\n    for (var j = 0; j < 64; j++) {\n      var u = ffloor((UVQT[j] * sf + 50) / 100);\n      u = Math.min(Math.max(u, 1), 255);\n      UVTable[ZigZag[j]] = u;\n    }\n    var aasf = [\n      1.0,\n      1.387039845,\n      1.306562965,\n      1.175875602,\n      1.0,\n      0.785694958,\n      0.5411961,\n      0.275899379\n    ];\n    var k = 0;\n    for (var row = 0; row < 8; row++) {\n      for (var col = 0; col < 8; col++) {\n        fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n        fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n        k++;\n      }\n    }\n  }\n\n  function computeHuffmanTbl(nrcodes, std_table) {\n    var codevalue = 0;\n    var pos_in_table = 0;\n    var HT = new Array();\n    for (var k = 1; k <= 16; k++) {\n      for (var j = 1; j <= nrcodes[k]; j++) {\n        HT[std_table[pos_in_table]] = [];\n        HT[std_table[pos_in_table]][0] = codevalue;\n        HT[std_table[pos_in_table]][1] = k;\n        pos_in_table++;\n        codevalue++;\n      }\n      codevalue *= 2;\n    }\n    return HT;\n  }\n\n  function initHuffmanTbl() {\n    YDC_HT = computeHuffmanTbl(\n      std_dc_luminance_nrcodes,\n      std_dc_luminance_values\n    );\n    UVDC_HT = computeHuffmanTbl(\n      std_dc_chrominance_nrcodes,\n      std_dc_chrominance_values\n    );\n    YAC_HT = computeHuffmanTbl(\n      std_ac_luminance_nrcodes,\n      std_ac_luminance_values\n    );\n    UVAC_HT = computeHuffmanTbl(\n      std_ac_chrominance_nrcodes,\n      std_ac_chrominance_values\n    );\n  }\n\n  function initCategoryNumber() {\n    var nrlower = 1;\n    var nrupper = 2;\n    for (var cat = 1; cat <= 15; cat++) {\n      //Positive numbers\n      for (var nr = nrlower; nr < nrupper; nr++) {\n        category[32767 + nr] = cat;\n        bitcode[32767 + nr] = [];\n        bitcode[32767 + nr][1] = cat;\n        bitcode[32767 + nr][0] = nr;\n      }\n      //Negative numbers\n      for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n        category[32767 + nrneg] = cat;\n        bitcode[32767 + nrneg] = [];\n        bitcode[32767 + nrneg][1] = cat;\n        bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n      }\n      nrlower <<= 1;\n      nrupper <<= 1;\n    }\n  }\n\n  function initRGBYUVTable() {\n    for (var i = 0; i < 256; i++) {\n      RGB_YUV_TABLE[i] = 19595 * i;\n      RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n      RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n      RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n      RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n      RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n      RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n      RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n    }\n  }\n\n  // IO functions\n  function writeBits(bs) {\n    var value = bs[0];\n    var posval = bs[1] - 1;\n    while (posval >= 0) {\n      if (value & (1 << posval)) {\n        bytenew |= 1 << bytepos;\n      }\n      posval--;\n      bytepos--;\n      if (bytepos < 0) {\n        if (bytenew == 0xff) {\n          writeByte(0xff);\n          writeByte(0);\n        } else {\n          writeByte(bytenew);\n        }\n        bytepos = 7;\n        bytenew = 0;\n      }\n    }\n  }\n\n  function writeByte(value) {\n    //byteout.push(clt[value]); // write char directly instead of converting later\n    byteout.push(value);\n  }\n\n  function writeWord(value) {\n    writeByte((value >> 8) & 0xff);\n    writeByte(value & 0xff);\n  }\n\n  // DCT & quantization core\n  function fDCTQuant(data, fdtbl) {\n    var d0, d1, d2, d3, d4, d5, d6, d7;\n    /* Pass 1: process rows. */\n    var dataOff = 0;\n    var i;\n    var I8 = 8;\n    var I64 = 64;\n    for (i = 0; i < I8; ++i) {\n      d0 = data[dataOff];\n      d1 = data[dataOff + 1];\n      d2 = data[dataOff + 2];\n      d3 = data[dataOff + 3];\n      d4 = data[dataOff + 4];\n      d5 = data[dataOff + 5];\n      d6 = data[dataOff + 6];\n      d7 = data[dataOff + 7];\n\n      var tmp0 = d0 + d7;\n      var tmp7 = d0 - d7;\n      var tmp1 = d1 + d6;\n      var tmp6 = d1 - d6;\n      var tmp2 = d2 + d5;\n      var tmp5 = d2 - d5;\n      var tmp3 = d3 + d4;\n      var tmp4 = d3 - d4;\n\n      /* Even part */\n      var tmp10 = tmp0 + tmp3; /* phase 2 */\n      var tmp13 = tmp0 - tmp3;\n      var tmp11 = tmp1 + tmp2;\n      var tmp12 = tmp1 - tmp2;\n\n      data[dataOff] = tmp10 + tmp11; /* phase 3 */\n      data[dataOff + 4] = tmp10 - tmp11;\n\n      var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n      data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n      data[dataOff + 6] = tmp13 - z1;\n\n      /* Odd part */\n      tmp10 = tmp4 + tmp5; /* phase 2 */\n      tmp11 = tmp5 + tmp6;\n      tmp12 = tmp6 + tmp7;\n\n      /* The rotator is modified from fig 4-8 to avoid extra negations. */\n      var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n      var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n      var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n      var z3 = tmp11 * 0.707106781; /* c4 */\n\n      var z11 = tmp7 + z3; /* phase 5 */\n      var z13 = tmp7 - z3;\n\n      data[dataOff + 5] = z13 + z2; /* phase 6 */\n      data[dataOff + 3] = z13 - z2;\n      data[dataOff + 1] = z11 + z4;\n      data[dataOff + 7] = z11 - z4;\n\n      dataOff += 8; /* advance pointer to next row */\n    }\n\n    /* Pass 2: process columns. */\n    dataOff = 0;\n    for (i = 0; i < I8; ++i) {\n      d0 = data[dataOff];\n      d1 = data[dataOff + 8];\n      d2 = data[dataOff + 16];\n      d3 = data[dataOff + 24];\n      d4 = data[dataOff + 32];\n      d5 = data[dataOff + 40];\n      d6 = data[dataOff + 48];\n      d7 = data[dataOff + 56];\n\n      var tmp0p2 = d0 + d7;\n      var tmp7p2 = d0 - d7;\n      var tmp1p2 = d1 + d6;\n      var tmp6p2 = d1 - d6;\n      var tmp2p2 = d2 + d5;\n      var tmp5p2 = d2 - d5;\n      var tmp3p2 = d3 + d4;\n      var tmp4p2 = d3 - d4;\n\n      /* Even part */\n      var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n      var tmp13p2 = tmp0p2 - tmp3p2;\n      var tmp11p2 = tmp1p2 + tmp2p2;\n      var tmp12p2 = tmp1p2 - tmp2p2;\n\n      data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n      data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n      var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n      data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n      data[dataOff + 48] = tmp13p2 - z1p2;\n\n      /* Odd part */\n      tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n      tmp11p2 = tmp5p2 + tmp6p2;\n      tmp12p2 = tmp6p2 + tmp7p2;\n\n      /* The rotator is modified from fig 4-8 to avoid extra negations. */\n      var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n      var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n      var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n      var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n      var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n      var z13p2 = tmp7p2 - z3p2;\n\n      data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n      data[dataOff + 24] = z13p2 - z2p2;\n      data[dataOff + 8] = z11p2 + z4p2;\n      data[dataOff + 56] = z11p2 - z4p2;\n\n      dataOff++; /* advance pointer to next column */\n    }\n\n    // Quantize/descale the coefficients\n    var fDCTQuant;\n    for (i = 0; i < I64; ++i) {\n      // Apply the quantization and scaling factor & Round to nearest integer\n      fDCTQuant = data[i] * fdtbl[i];\n      outputfDCTQuant[i] =\n        fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n      //outputfDCTQuant[i] = fround(fDCTQuant);\n    }\n    return outputfDCTQuant;\n  }\n\n  function writeAPP0() {\n    writeWord(0xffe0); // marker\n    writeWord(16); // length\n    writeByte(0x4a); // J\n    writeByte(0x46); // F\n    writeByte(0x49); // I\n    writeByte(0x46); // F\n    writeByte(0); // = \"JFIF\",'\\0'\n    writeByte(1); // versionhi\n    writeByte(1); // versionlo\n    writeByte(0); // xyunits\n    writeWord(1); // xdensity\n    writeWord(1); // ydensity\n    writeByte(0); // thumbnwidth\n    writeByte(0); // thumbnheight\n  }\n\n  function writeSOF0(width, height) {\n    writeWord(0xffc0); // marker\n    writeWord(17); // length, truecolor YUV JPG\n    writeByte(8); // precision\n    writeWord(height);\n    writeWord(width);\n    writeByte(3); // nrofcomponents\n    writeByte(1); // IdY\n    writeByte(0x11); // HVY\n    writeByte(0); // QTY\n    writeByte(2); // IdU\n    writeByte(0x11); // HVU\n    writeByte(1); // QTU\n    writeByte(3); // IdV\n    writeByte(0x11); // HVV\n    writeByte(1); // QTV\n  }\n\n  function writeDQT() {\n    writeWord(0xffdb); // marker\n    writeWord(132); // length\n    writeByte(0);\n    for (var i = 0; i < 64; i++) {\n      writeByte(YTable[i]);\n    }\n    writeByte(1);\n    for (var j = 0; j < 64; j++) {\n      writeByte(UVTable[j]);\n    }\n  }\n\n  function writeDHT() {\n    writeWord(0xffc4); // marker\n    writeWord(0x01a2); // length\n\n    writeByte(0); // HTYDCinfo\n    for (var i = 0; i < 16; i++) {\n      writeByte(std_dc_luminance_nrcodes[i + 1]);\n    }\n    for (var j = 0; j <= 11; j++) {\n      writeByte(std_dc_luminance_values[j]);\n    }\n\n    writeByte(0x10); // HTYACinfo\n    for (var k = 0; k < 16; k++) {\n      writeByte(std_ac_luminance_nrcodes[k + 1]);\n    }\n    for (var l = 0; l <= 161; l++) {\n      writeByte(std_ac_luminance_values[l]);\n    }\n\n    writeByte(1); // HTUDCinfo\n    for (var m = 0; m < 16; m++) {\n      writeByte(std_dc_chrominance_nrcodes[m + 1]);\n    }\n    for (var n = 0; n <= 11; n++) {\n      writeByte(std_dc_chrominance_values[n]);\n    }\n\n    writeByte(0x11); // HTUACinfo\n    for (var o = 0; o < 16; o++) {\n      writeByte(std_ac_chrominance_nrcodes[o + 1]);\n    }\n    for (var p = 0; p <= 161; p++) {\n      writeByte(std_ac_chrominance_values[p]);\n    }\n  }\n\n  function writeSOS() {\n    writeWord(0xffda); // marker\n    writeWord(12); // length\n    writeByte(3); // nrofcomponents\n    writeByte(1); // IdY\n    writeByte(0); // HTY\n    writeByte(2); // IdU\n    writeByte(0x11); // HTU\n    writeByte(3); // IdV\n    writeByte(0x11); // HTV\n    writeByte(0); // Ss\n    writeByte(0x3f); // Se\n    writeByte(0); // Bf\n  }\n\n  function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n    var EOB = HTAC[0x00];\n    var M16zeroes = HTAC[0xf0];\n    var pos;\n    var I16 = 16;\n    var I63 = 63;\n    var I64 = 64;\n    var DU_DCT = fDCTQuant(CDU, fdtbl);\n    //ZigZag reorder\n    for (var j = 0; j < I64; ++j) {\n      DU[ZigZag[j]] = DU_DCT[j];\n    }\n    var Diff = DU[0] - DC;\n    DC = DU[0];\n    //Encode DC\n    if (Diff == 0) {\n      writeBits(HTDC[0]); // Diff might be 0\n    } else {\n      pos = 32767 + Diff;\n      writeBits(HTDC[category[pos]]);\n      writeBits(bitcode[pos]);\n    }\n    //Encode ACs\n    var end0pos = 63; // was const... which is crazy\n    while (end0pos > 0 && DU[end0pos] == 0) {\n      end0pos--;\n    }\n    //end0pos = first element in reverse order !=0\n    if (end0pos == 0) {\n      writeBits(EOB);\n      return DC;\n    }\n    var i = 1;\n    var lng;\n    while (i <= end0pos) {\n      var startpos = i;\n      while (DU[i] == 0 && i <= end0pos) {\n        ++i;\n      }\n      var nrzeroes = i - startpos;\n      if (nrzeroes >= I16) {\n        lng = nrzeroes >> 4;\n        for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n          writeBits(M16zeroes);\n        nrzeroes = nrzeroes & 0xf;\n      }\n      pos = 32767 + DU[i];\n      writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n      writeBits(bitcode[pos]);\n      i++;\n    }\n    if (end0pos != I63) {\n      writeBits(EOB);\n    }\n    return DC;\n  }\n\n  function initCharLookupTable() {\n    var sfcc = String.fromCharCode;\n    for (var i = 0; i < 256; i++) {\n      ///// ACHTUNG // 255\n      clt[i] = sfcc(i);\n    }\n  }\n\n  this.encode = function(\n    image,\n    quality // image data object\n  ) {\n    if (quality) setQuality(quality);\n\n    // Initialize bit writer\n    byteout = new Array();\n    bytenew = 0;\n    bytepos = 7;\n\n    // Add JPEG headers\n    writeWord(0xffd8); // SOI\n    writeAPP0();\n    writeDQT();\n    writeSOF0(image.width, image.height);\n    writeDHT();\n    writeSOS();\n\n    // Encode 8x8 macroblocks\n    var DCY = 0;\n    var DCU = 0;\n    var DCV = 0;\n\n    bytenew = 0;\n    bytepos = 7;\n\n    this.encode.displayName = \"_encode_\";\n\n    var imageData = image.data;\n    var width = image.width;\n    var height = image.height;\n\n    var quadWidth = width * 4;\n\n    var x,\n      y = 0;\n    var r, g, b;\n    var start, p, col, row, pos;\n    while (y < height) {\n      x = 0;\n      while (x < quadWidth) {\n        start = quadWidth * y + x;\n        col = -1;\n        row = 0;\n\n        for (pos = 0; pos < 64; pos++) {\n          row = pos >> 3; // /8\n          col = (pos & 7) * 4; // %8\n          p = start + row * quadWidth + col;\n\n          if (y + row >= height) {\n            // padding bottom\n            p -= quadWidth * (y + 1 + row - height);\n          }\n\n          if (x + col >= quadWidth) {\n            // padding right\n            p -= x + col - quadWidth + 4;\n          }\n\n          r = imageData[p++];\n          g = imageData[p++];\n          b = imageData[p++];\n\n          /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n          // use lookup table (slightly faster)\n          YDU[pos] =\n            ((RGB_YUV_TABLE[r] +\n              RGB_YUV_TABLE[(g + 256) >> 0] +\n              RGB_YUV_TABLE[(b + 512) >> 0]) >>\n              16) -\n            128;\n          UDU[pos] =\n            ((RGB_YUV_TABLE[(r + 768) >> 0] +\n              RGB_YUV_TABLE[(g + 1024) >> 0] +\n              RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n              16) -\n            128;\n          VDU[pos] =\n            ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n              RGB_YUV_TABLE[(g + 1536) >> 0] +\n              RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n              16) -\n            128;\n        }\n\n        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n        x += 32;\n      }\n      y += 8;\n    }\n\n    ////////////////////////////////////////////////////////////////\n\n    // Do the bit alignment of the EOI marker\n    if (bytepos >= 0) {\n      var fillbits = [];\n      fillbits[1] = bytepos + 1;\n      fillbits[0] = (1 << (bytepos + 1)) - 1;\n      writeBits(fillbits);\n    }\n\n    writeWord(0xffd9); //EOI\n\n    return new Uint8Array(byteout);\n  };\n\n  function setQuality(quality) {\n    quality = Math.min(Math.max(quality, 1), 100);\n\n    if (currentQuality == quality) return; // don't recalc if unchanged\n\n    var sf =\n      quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n    initQuantTables(sf);\n    currentQuality = quality;\n    //console.log('Quality set to: '+quality +'%');\n  }\n\n  function init() {\n    quality = quality || 50;\n    // Create tables\n    initCharLookupTable();\n    initHuffmanTbl();\n    initCategoryNumber();\n    initRGBYUVTable();\n\n    setQuality(quality);\n  }\n  init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n    var reader = new GifReader(imageData);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = [];\n\n    reader.decodeAndBlitFrameRGBA(0, pixels);\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n\n  jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n  this.pos = 0;\n  this.buffer = buffer;\n  this.datav = new DataView(buffer.buffer);\n  this.is_with_alpha = !!is_with_alpha;\n  this.bottom_up = true;\n  this.flag =\n    String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n  this.pos += 2;\n  if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n    throw new Error(\"Invalid BMP File\");\n  this.parseHeader();\n  this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n  this.fileSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.reserved = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.offset = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.headerSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.width = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.height = this.datav.getInt32(this.pos, true);\n  this.pos += 4;\n  this.planes = this.datav.getUint16(this.pos, true);\n  this.pos += 2;\n  this.bitPP = this.datav.getUint16(this.pos, true);\n  this.pos += 2;\n  this.compress = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.rawSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.hr = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.vr = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.colors = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.importantColors = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n\n  if (this.bitPP === 16 && this.is_with_alpha) {\n    this.bitPP = 15;\n  }\n  if (this.bitPP < 15) {\n    var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n    this.palette = new Array(len);\n    for (var i = 0; i < len; i++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var quad = this.datav.getUint8(this.pos++, true);\n      this.palette[i] = {\n        red: red,\n        green: green,\n        blue: blue,\n        quad: quad\n      };\n    }\n  }\n  if (this.height < 0) {\n    this.height *= -1;\n    this.bottom_up = false;\n  }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n  this.pos = this.offset;\n  try {\n    var bitn = \"bit\" + this.bitPP;\n    var len = this.width * this.height * 4;\n    this.data = new Uint8Array(len);\n\n    this[bitn]();\n  } catch (e) {\n    console.log(\"bit decode error:\" + e);\n  }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n  var xlen = Math.ceil(this.width / 8);\n  var mode = xlen % 4;\n  var y;\n  for (y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < xlen; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 8 * 4;\n      for (var i = 0; i < 8; i++) {\n        if (x * 8 + i < this.width) {\n          var rgb = this.palette[(b >> (7 - i)) & 0x1];\n          this.data[location + i * 4] = rgb.blue;\n          this.data[location + i * 4 + 1] = rgb.green;\n          this.data[location + i * 4 + 2] = rgb.red;\n          this.data[location + i * 4 + 3] = 0xff;\n        } else {\n          break;\n        }\n      }\n    }\n\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n  var xlen = Math.ceil(this.width / 2);\n  var mode = xlen % 4;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < xlen; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 2 * 4;\n\n      var before = b >> 4;\n      var after = b & 0x0f;\n\n      var rgb = this.palette[before];\n      this.data[location] = rgb.blue;\n      this.data[location + 1] = rgb.green;\n      this.data[location + 2] = rgb.red;\n      this.data[location + 3] = 0xff;\n\n      if (x * 2 + 1 >= this.width) break;\n\n      rgb = this.palette[after];\n      this.data[location + 4] = rgb.blue;\n      this.data[location + 4 + 1] = rgb.green;\n      this.data[location + 4 + 2] = rgb.red;\n      this.data[location + 4 + 3] = 0xff;\n    }\n\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n  var mode = this.width % 4;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      if (b < this.palette.length) {\n        var rgb = this.palette[b];\n        this.data[location] = rgb.red;\n        this.data[location + 1] = rgb.green;\n        this.data[location + 2] = rgb.blue;\n        this.data[location + 3] = 0xff;\n      } else {\n        this.data[location] = 0xff;\n        this.data[location + 1] = 0xff;\n        this.data[location + 2] = 0xff;\n        this.data[location + 3] = 0xff;\n      }\n    }\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n  var dif_w = this.width % 3;\n  var _11111 = parseInt(\"11111\", 2),\n    _1_5 = _11111;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var B = this.datav.getUint16(this.pos, true);\n      this.pos += 2;\n      var blue = (((B & _1_5) / _1_5) * 255) | 0;\n      var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n      var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n      var alpha = B >> 15 ? 0xff : 0x00;\n\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    this.pos += dif_w;\n  }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n  var dif_w = this.width % 3;\n  var _11111 = parseInt(\"11111\", 2),\n    _1_5 = _11111;\n  var _111111 = parseInt(\"111111\", 2),\n    _1_6 = _111111;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var B = this.datav.getUint16(this.pos, true);\n      this.pos += 2;\n      var alpha = 0xff;\n      var blue = (((B & _1_5) / _1_5) * 255) | 0;\n      var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n      var red = (((B >> 11) / _1_5) * 255) | 0;\n\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    this.pos += dif_w;\n  }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n  //when height > 0\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = 0xff;\n    }\n    //skip extra bytes\n    this.pos += this.width % 4;\n  }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n  //when height > 0\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var alpha = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    //this.pos += (this.width % 4);\n  }\n};\n\nBmpDecoder.prototype.getData = function() {\n  return this.data;\n};\n\nexport { BmpDecoder };\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n    var reader = new BmpDecoder(imageData, false);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = reader.getData();\n\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n})(jsPDF.API);\n","function WebPDecoder(imageData) {\n  /** @license\n   * Copyright 2011 Google Inc.\n   *\n   * This code is licensed under the same terms as WebM:\n   *  Software License Agreement:  http://www.webmproject.org/license/software/\n   *  Additional IP Rights Grant:  http://www.webmproject.org/license/additional/\n   * -----------------------------------------------------------------------------\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n   * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n   * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n   * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n   *\n   * -----------------------------------------------------------------------------\n   *\n   * Copyright 2011-2017 Dominik Homberger\n   * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n   *\n   * Author: Dominik Homberger (dominik.homberger@gmail.com)\n   */\n\n  var self = this;\n  var UpsampleRgbLinePair,\n    UpsampleBgrLinePair,\n    UpsampleRgbaLinePair,\n    UpsampleBgraLinePair,\n    UpsampleArgbLinePair,\n    UpsampleArgbLinePair,\n    UpsampleRgba4444LinePair,\n    UpsampleRgb565LinePair;\n\n  function x(F) {\n    if (!F) throw Error(\"assert :P\");\n  }\n  function fa(F, L, J) {\n    for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n    return !1;\n  }\n  function I(F, L, J, H, Z) {\n    for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n  }\n  function M(F, L, J, H) {\n    for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n  }\n  function V(F) {\n    return new Int32Array(F);\n  }\n  function wa(F, L) {\n    for (var J = [], H = 0; H < F; H++) J.push(new L());\n    return J;\n  }\n  function wb() {\n    function F(J, H, Z) {\n      for (var O = Z[H], L = 0; L < O; L++) {\n        J.push(Z.length > H + 1 ? [] : 0);\n        if (Z.length < H + 1) break;\n        F(J[L], H + 1, Z);\n      }\n    }\n    var L = [];\n    F(L, 0, [3, 11]);\n    return L;\n  }\n  function Ed(F, L) {\n    function J(H, O, F) {\n      for (var Z = F[O], ma = 0; ma < Z; ma++) {\n        H.push(F.length > O + 1 ? [] : new L());\n        if (F.length < O + 1) break;\n        J(H[ma], O + 1, F);\n      }\n    }\n    var H = [];\n    J(H, 0, F);\n    return H;\n  }\n  var _WebPDecoder = function() {\n    var self = this;\n    function F() {\n      V(55);\n    }\n    function L(a, b) {\n      for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n      return c ? (a & (c - 1)) + c : a;\n    }\n    function J(a, b, c, d, e) {\n      x(!(d % c));\n      do (d -= c), (a[b + d] = e);\n      while (0 < d);\n    }\n    function H(a, b, c, d, e, f) {\n      var g = b,\n        h = 1 << c,\n        k,\n        l,\n        m = V(16),\n        n = V(16);\n      x(0 != e);\n      x(null != d);\n      x(null != a);\n      x(0 < c);\n      for (l = 0; l < e; ++l) {\n        if (15 < d[l]) return 0;\n        ++m[d[l]];\n      }\n      if (m[0] == e) return 0;\n      n[1] = 0;\n      for (k = 1; 15 > k; ++k) {\n        if (m[k] > 1 << k) return 0;\n        n[k + 1] = n[k] + m[k];\n      }\n      for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n      if (1 == n[15])\n        return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n      var r = -1,\n        q = h - 1,\n        t = 0,\n        v = 1,\n        p = 1,\n        u,\n        w = 1 << c;\n      l = 0;\n      k = 1;\n      for (e = 2; k <= c; ++k, e <<= 1) {\n        p <<= 1;\n        v += p;\n        p -= m[k];\n        if (0 > p) return 0;\n        for (; 0 < m[k]; --m[k])\n          (d = new O()),\n            (d.g = k),\n            (d.value = f[l++]),\n            J(a, g + t, e, w, d),\n            (t = L(t, k));\n      }\n      k = c + 1;\n      for (e = 2; 15 >= k; ++k, e <<= 1) {\n        p <<= 1;\n        v += p;\n        p -= m[k];\n        if (0 > p) return 0;\n        for (; 0 < m[k]; --m[k]) {\n          d = new O();\n          if ((t & q) != r) {\n            g += w;\n            r = k;\n            for (u = 1 << (r - c); 15 > r; ) {\n              u -= m[r];\n              if (0 >= u) break;\n              ++r;\n              u <<= 1;\n            }\n            u = r - c;\n            w = 1 << u;\n            h += w;\n            r = t & q;\n            a[b + r].g = u + c;\n            a[b + r].value = g - b - r;\n          }\n          d.g = k - c;\n          d.value = f[l++];\n          J(a, g + (t >> c), e, w, d);\n          t = L(t, k);\n        }\n      }\n      return v != 2 * n[15] - 1 ? 0 : h;\n    }\n    function Z(a, b, c, d, e) {\n      x(2328 >= e);\n      if (512 >= e) var f = V(512);\n      else if (((f = V(e)), null == f)) return 0;\n      return H(a, b, c, d, e, f);\n    }\n    function O() {\n      this.value = this.g = 0;\n    }\n    function Fd() {\n      this.value = this.g = 0;\n    }\n    function Ub() {\n      this.G = wa(5, O);\n      this.H = V(5);\n      this.jc = this.Qb = this.qb = this.nd = 0;\n      this.pd = wa(xb, Fd);\n    }\n    function ma(a, b, c, d) {\n      x(null != a);\n      x(null != b);\n      x(2147483648 > d);\n      a.Ca = 254;\n      a.I = 0;\n      a.b = -8;\n      a.Ka = 0;\n      a.oa = b;\n      a.pa = c;\n      a.Jd = b;\n      a.Yc = c + d;\n      a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n      Qa(a);\n    }\n    function na(a, b) {\n      for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n      return c;\n    }\n    function ca(a, b) {\n      var c = na(a, b);\n      return G(a) ? -c : c;\n    }\n    function cb(a, b, c, d) {\n      var e,\n        f = 0;\n      x(null != a);\n      x(null != b);\n      x(4294967288 > d);\n      a.Sb = d;\n      a.Ra = 0;\n      a.u = 0;\n      a.h = 0;\n      4 < d && (d = 4);\n      for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n      a.Ra = f;\n      a.bb = d;\n      a.oa = b;\n      a.pa = c;\n    }\n    function Vb(a) {\n      for (; 8 <= a.u && a.bb < a.Sb; )\n        (a.Ra >>>= 8),\n          (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n          ++a.bb,\n          (a.u -= 8);\n      db(a) && ((a.h = 1), (a.u = 0));\n    }\n    function D(a, b) {\n      x(0 <= b);\n      if (!a.h && b <= Gd) {\n        var c = pb(a) & Hd[b];\n        a.u += b;\n        Vb(a);\n        return c;\n      }\n      a.h = 1;\n      return (a.u = 0);\n    }\n    function Wb() {\n      this.b = this.Ca = this.I = 0;\n      this.oa = [];\n      this.pa = 0;\n      this.Jd = [];\n      this.Yc = 0;\n      this.Zc = [];\n      this.Ka = 0;\n    }\n    function Ra() {\n      this.Ra = 0;\n      this.oa = [];\n      this.h = this.u = this.bb = this.Sb = this.pa = 0;\n    }\n    function pb(a) {\n      return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n    }\n    function db(a) {\n      x(a.bb <= a.Sb);\n      return a.h || (a.bb == a.Sb && a.u > ob);\n    }\n    function qb(a, b) {\n      a.u = b;\n      a.h = db(a);\n    }\n    function Sa(a) {\n      a.u >= Xb && (x(a.u >= Xb), Vb(a));\n    }\n    function Qa(a) {\n      x(null != a && null != a.oa);\n      a.pa < a.Zc\n        ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n        : (x(null != a && null != a.oa),\n          a.pa < a.Yc\n            ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n            : a.Ka\n            ? (a.b = 0)\n            : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n    }\n    function G(a) {\n      return na(a, 1);\n    }\n    function K(a, b) {\n      var c = a.Ca;\n      0 > a.b && Qa(a);\n      var d = a.b,\n        e = (c * b) >>> 8,\n        f = (a.I >>> d > e) + 0;\n      f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n      d = c;\n      for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n      d = 7 ^ (e + Id[d]);\n      a.b -= d;\n      a.Ca = (c << d) - 1;\n      return f;\n    }\n    function ra(a, b, c) {\n      a[b + 0] = (c >> 24) & 255;\n      a[b + 1] = (c >> 16) & 255;\n      a[b + 2] = (c >> 8) & 255;\n      a[b + 3] = (c >> 0) & 255;\n    }\n    function Ta(a, b) {\n      return (a[b + 0] << 0) | (a[b + 1] << 8);\n    }\n    function Yb(a, b) {\n      return Ta(a, b) | (a[b + 2] << 16);\n    }\n    function Ha(a, b) {\n      return Ta(a, b) | (Ta(a, b + 2) << 16);\n    }\n    function Zb(a, b) {\n      var c = 1 << b;\n      x(null != a);\n      x(0 < b);\n      a.X = V(c);\n      if (null == a.X) return 0;\n      a.Mb = 32 - b;\n      a.Xa = b;\n      return 1;\n    }\n    function $b(a, b) {\n      x(null != a);\n      x(null != b);\n      x(a.Xa == b.Xa);\n      I(b.X, 0, a.X, 0, 1 << b.Xa);\n    }\n    function ac() {\n      this.X = [];\n      this.Xa = this.Mb = 0;\n    }\n    function bc(a, b, c, d) {\n      x(null != c);\n      x(null != d);\n      var e = c[0],\n        f = d[0];\n      0 == e && (e = (a * f + b / 2) / b);\n      0 == f && (f = (b * e + a / 2) / a);\n      if (0 >= e || 0 >= f) return 0;\n      c[0] = e;\n      d[0] = f;\n      return 1;\n    }\n    function xa(a, b) {\n      return (a + (1 << b) - 1) >>> b;\n    }\n    function yb(a, b) {\n      return (\n        (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n          ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n        0\n      );\n    }\n    function X(a, b) {\n      self[b] = function(b, d, e, f, g, h, k) {\n        var c;\n        for (c = 0; c < g; ++c) {\n          var m = self[a](h[k + c - 1], e, f + c);\n          h[k + c] = yb(b[d + c], m);\n        }\n      };\n    }\n    function Jd() {\n      this.ud = this.hd = this.jd = 0;\n    }\n    function aa(a, b) {\n      return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n    }\n    function sa(a) {\n      if (0 <= a && 256 > a) return a;\n      if (0 > a) return 0;\n      if (255 < a) return 255;\n    }\n    function eb(a, b) {\n      return sa(a + ((a - b + 0.5) >> 1));\n    }\n    function Ia(a, b, c) {\n      return Math.abs(b - c) - Math.abs(a - c);\n    }\n    function cc(a, b, c, d, e, f, g) {\n      d = f[g - 1];\n      for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n    }\n    function Kd(a, b, c, d, e) {\n      var f;\n      for (f = 0; f < c; ++f) {\n        var g = a[b + f],\n          h = (g >> 8) & 255,\n          k = g & 16711935,\n          k = k + ((h << 16) + h),\n          k = k & 16711935;\n        d[e + f] = ((g & 4278255360) + k) >>> 0;\n      }\n    }\n    function dc(a, b) {\n      b.jd = (a >> 0) & 255;\n      b.hd = (a >> 8) & 255;\n      b.ud = (a >> 16) & 255;\n    }\n    function Ld(a, b, c, d, e, f) {\n      var g;\n      for (g = 0; g < d; ++g) {\n        var h = b[c + g],\n          k = h >>> 8,\n          l = h >>> 16,\n          m = h,\n          l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n          l = l & 255,\n          m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n          m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n          m = m & 255;\n        e[f + g] = (h & 4278255360) + (l << 16) + m;\n      }\n    }\n    function ec(a, b, c, d, e) {\n      self[b] = function(a, b, c, k, l, m, n, r, q) {\n        for (k = n; k < r; ++k)\n          for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n      };\n      self[a] = function(a, b, h, k, l, m, n) {\n        var f = 8 >> a.b,\n          g = a.Ea,\n          t = a.K[0],\n          v = a.w;\n        if (8 > f)\n          for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n            var p = 0,\n              u;\n            for (u = 0; u < g; ++u)\n              u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n          }\n        else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n      };\n    }\n    function Md(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 16) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 0) & 255;\n      }\n    }\n    function Nd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 16) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 0) & 255;\n        d[e++] = (f >> 24) & 255;\n      }\n    }\n    function Od(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++],\n          g = ((f >> 16) & 240) | ((f >> 12) & 15),\n          f = ((f >> 0) & 240) | ((f >> 28) & 15);\n        d[e++] = g;\n        d[e++] = f;\n      }\n    }\n    function Pd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++],\n          g = ((f >> 16) & 248) | ((f >> 13) & 7),\n          f = ((f >> 5) & 224) | ((f >> 3) & 31);\n        d[e++] = g;\n        d[e++] = f;\n      }\n    }\n    function Qd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 0) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 16) & 255;\n      }\n    }\n    function fb(a, b, c, d, e, f) {\n      if (0 == f)\n        for (c = b + c; b < c; )\n          (f = a[b++]),\n            ra(\n              d,\n              ((f[0] >> 24) |\n                ((f[1] >> 8) & 65280) |\n                ((f[2] << 8) & 16711680) |\n                (f[3] << 24)) >>>\n                0\n            ),\n            (e += 32);\n      else I(d, e, a, b, c);\n    }\n    function gb(a, b) {\n      self[b][0] = self[a + \"0\"];\n      self[b][1] = self[a + \"1\"];\n      self[b][2] = self[a + \"2\"];\n      self[b][3] = self[a + \"3\"];\n      self[b][4] = self[a + \"4\"];\n      self[b][5] = self[a + \"5\"];\n      self[b][6] = self[a + \"6\"];\n      self[b][7] = self[a + \"7\"];\n      self[b][8] = self[a + \"8\"];\n      self[b][9] = self[a + \"9\"];\n      self[b][10] = self[a + \"10\"];\n      self[b][11] = self[a + \"11\"];\n      self[b][12] = self[a + \"12\"];\n      self[b][13] = self[a + \"13\"];\n      self[b][14] = self[a + \"0\"];\n      self[b][15] = self[a + \"0\"];\n    }\n    function hb(a) {\n      return a == zb || a == Ab || a == Ja || a == Bb;\n    }\n    function Rd() {\n      this.eb = [];\n      this.size = this.A = this.fb = 0;\n    }\n    function Sd() {\n      this.y = [];\n      this.f = [];\n      this.ea = [];\n      this.F = [];\n      this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n    }\n    function Cb() {\n      this.Rd = this.height = this.width = this.S = 0;\n      this.f = {};\n      this.f.RGBA = new Rd();\n      this.f.kb = new Sd();\n      this.sd = null;\n    }\n    function Td() {\n      this.width = [0];\n      this.height = [0];\n      this.Pd = [0];\n      this.Qd = [0];\n      this.format = [0];\n    }\n    function Ud() {\n      this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n    }\n    function Vd(a) {\n      alert(\"todo:WebPSamplerProcessPlane\");\n      return a.T;\n    }\n    function Wd(a, b) {\n      var c = a.T,\n        d = b.ba.f.RGBA,\n        e = d.eb,\n        f = d.fb + a.ka * d.A,\n        g = P[b.ba.S],\n        h = a.y,\n        k = a.O,\n        l = a.f,\n        m = a.N,\n        n = a.ea,\n        r = a.W,\n        q = b.cc,\n        t = b.dc,\n        v = b.Mc,\n        p = b.Nc,\n        u = a.ka,\n        w = a.ka + a.T,\n        y = a.U,\n        A = (y + 1) >> 1;\n      0 == u\n        ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n        : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n          ++c);\n      for (; u + 2 < w; u += 2)\n        (q = l),\n          (t = m),\n          (v = n),\n          (p = r),\n          (m += a.Rc),\n          (r += a.Rc),\n          (f += 2 * d.A),\n          (k += 2 * a.fa),\n          g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n      k += a.fa;\n      a.j + w < a.o\n        ? (I(b.ec, b.fc, h, k, y),\n          I(b.cc, b.dc, l, m, A),\n          I(b.Mc, b.Nc, n, r, A),\n          c--)\n        : w & 1 ||\n          g(\n            h,\n            k,\n            null,\n            null,\n            l,\n            m,\n            n,\n            r,\n            l,\n            m,\n            n,\n            r,\n            e,\n            f + d.A,\n            null,\n            null,\n            y\n          );\n      return c;\n    }\n    function Xd(a, b, c) {\n      var d = a.F,\n        e = [a.J];\n      if (null != d) {\n        var f = a.U,\n          g = b.ba.S,\n          h = g == ya || g == Ja;\n        b = b.ba.f.RGBA;\n        var k = [0],\n          l = a.ka;\n        k[0] = a.T;\n        a.Kb &&\n          (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n          a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n        var m = b.eb,\n          l = b.fb + l * b.A;\n        a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n        x(c == k);\n        a && hb(g) && za(m, l, h, f, k, b.A);\n      }\n      return 0;\n    }\n    function gc(a) {\n      var b = a.ma,\n        c = b.ba.S,\n        d = 11 > c,\n        e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n      b.memory = null;\n      b.Ib = null;\n      b.Jb = null;\n      b.Nd = null;\n      if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n      e && hb(c) && ic();\n      if (a.da) alert(\"todo:use_scaling\");\n      else {\n        if (d) {\n          if (((b.Ib = Vd), a.Kb)) {\n            c = (a.U + 1) >> 1;\n            b.memory = V(a.U + 2 * c);\n            if (null == b.memory) return 0;\n            b.ec = b.memory;\n            b.fc = 0;\n            b.cc = b.ec;\n            b.dc = b.fc + a.U;\n            b.Mc = b.cc;\n            b.Nc = b.dc + c;\n            b.Ib = Wd;\n            ic();\n          }\n        } else alert(\"todo:EmitYUV\");\n        e && ((b.Jb = Xd), d && Aa());\n      }\n      if (d && !jc) {\n        for (a = 0; 256 > a; ++a)\n          (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n            (Zd[a] = -22014 * (a - 128) + Ba),\n            ($d[a] = -45773 * (a - 128)),\n            (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n        for (a = ta; a < Eb; ++a)\n          (b = (76283 * (a - 16) + Ba) >> Wa),\n            (be[a - ta] = ga(b, 255)),\n            (ce[a - ta] = ga((b + 8) >> 4, 15));\n        jc = 1;\n      }\n      return 1;\n    }\n    function kc(a) {\n      var b = a.ma,\n        c = a.U,\n        d = a.T;\n      x(!(a.ka & 1));\n      if (0 >= c || 0 >= d) return 0;\n      c = b.Ib(a, b);\n      null != b.Jb && b.Jb(a, b, c);\n      b.Dc += c;\n      return 1;\n    }\n    function lc(a) {\n      a.ma.memory = null;\n    }\n    function mc(a, b, c, d) {\n      if (47 != D(a, 8)) return 0;\n      b[0] = D(a, 14) + 1;\n      c[0] = D(a, 14) + 1;\n      d[0] = D(a, 1);\n      return 0 != D(a, 3) ? 0 : !a.h;\n    }\n    function ib(a, b) {\n      if (4 > a) return a + 1;\n      var c = (a - 2) >> 1;\n      return ((2 + (a & 1)) << c) + D(b, c) + 1;\n    }\n    function nc(a, b) {\n      if (120 < b) return b - 120;\n      var c = de[b - 1],\n        c = (c >> 4) * a + (8 - (c & 15));\n      return 1 <= c ? c : 1;\n    }\n    function ua(a, b, c) {\n      var d = pb(c);\n      b += d & 255;\n      var e = a[b].g - 8;\n      0 < e &&\n        (qb(c, c.u + 8),\n        (d = pb(c)),\n        (b += a[b].value),\n        (b += d & ((1 << e) - 1)));\n      qb(c, c.u + a[b].g);\n      return a[b].value;\n    }\n    function ub(a, b, c) {\n      c.g += a.g;\n      c.value += (a.value << b) >>> 0;\n      x(8 >= c.g);\n      return a.g;\n    }\n    function ha(a, b, c) {\n      var d = a.xc;\n      b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n      x(b < a.Wb);\n      return a.Ya[b];\n    }\n    function oc(a, b, c, d) {\n      var e = a.ab,\n        f = a.c * b,\n        g = a.C;\n      b = g + b;\n      var h = c,\n        k = d;\n      d = a.Ta;\n      for (c = a.Ua; 0 < e--; ) {\n        var l = a.gc[e],\n          m = g,\n          n = b,\n          r = h,\n          q = k,\n          k = d,\n          h = c,\n          t = l.Ea;\n        x(m < n);\n        x(n <= l.nc);\n        switch (l.hc) {\n          case 2:\n            pc(r, q, (n - m) * t, k, h);\n            break;\n          case 0:\n            var v = l,\n              p = m,\n              u = n,\n              w = k,\n              y = h,\n              A = v.Ea;\n            0 == p &&\n              (ee(r, q, null, null, 1, w, y),\n              cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n              (q += A),\n              (y += A),\n              ++p);\n            for (\n              var E = 1 << v.b,\n                B = E - 1,\n                C = xa(A, v.b),\n                N = v.K,\n                v = v.w + (p >> v.b) * C;\n              p < u;\n\n            ) {\n              var z = N,\n                Q = v,\n                S = 1;\n              for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n                var K = qc[(z[Q++] >> 8) & 15],\n                  D = (S & ~B) + E;\n                D > A && (D = A);\n                K(r, q + +S, w, y + S - A, D - S, w, y + S);\n                S = D;\n              }\n              q += A;\n              y += A;\n              ++p;\n              p & B || (v += C);\n            }\n            n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n            break;\n          case 1:\n            t = r;\n            u = q;\n            r = l.Ea;\n            q = 1 << l.b;\n            w = q - 1;\n            y = r & ~w;\n            A = r - y;\n            p = xa(r, l.b);\n            E = l.K;\n            for (l = l.w + (m >> l.b) * p; m < n; ) {\n              B = E;\n              C = l;\n              N = new Jd();\n              v = u + y;\n              for (z = u + r; u < v; )\n                dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n              u < z &&\n                (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n              ++m;\n              m & w || (l += p);\n            }\n            break;\n          case 3:\n            if (r == k && q == h && 0 < l.b) {\n              y = (n - m) * xa(l.Ea, l.b);\n              t = h + (n - m) * t - y;\n              u = k;\n              r = t;\n              q = k;\n              w = h;\n              A = y;\n              p = [];\n              for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n              for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n              rc(l, m, n, k, t, k, h);\n            } else rc(l, m, n, r, q, k, h);\n        }\n        h = d;\n        k = c;\n      }\n      k != c && I(d, c, h, k, f);\n    }\n    function ge(a, b) {\n      var c = a.V,\n        d = a.Ba + a.c * a.C,\n        e = b - a.C;\n      x(b <= a.l.o);\n      x(16 >= e);\n      if (0 < e) {\n        var f = a.l,\n          g = a.Ta,\n          h = a.Ua,\n          k = f.width;\n        oc(a, e, c, d);\n        h = [h];\n        c = a.C;\n        d = b;\n        e = h;\n        x(c < d);\n        x(f.v < f.va);\n        d > f.o && (d = f.o);\n        if (c < f.j) {\n          var l = f.j - c,\n            c = f.j;\n          e[0] += l * k;\n        }\n        c >= d\n          ? (c = 0)\n          : ((e[0] += 4 * f.v),\n            (f.ka = c - f.j),\n            (f.U = f.va - f.v),\n            (f.T = d - c),\n            (c = 1));\n        if (c) {\n          h = h[0];\n          c = a.ca;\n          if (11 > c.S) {\n            for (\n              var m = c.f.RGBA,\n                d = c.S,\n                e = f.U,\n                f = f.T,\n                l = m.eb,\n                n = m.A,\n                r = f,\n                m = m.fb + a.Ma * m.A;\n              0 < r--;\n\n            ) {\n              var q = g,\n                t = h,\n                v = e,\n                p = l,\n                u = m;\n              switch (d) {\n                case Ca:\n                  sc(q, t, v, p, u);\n                  break;\n                case Ua:\n                  Gb(q, t, v, p, u);\n                  break;\n                case zb:\n                  Gb(q, t, v, p, u);\n                  za(p, u, 0, v, 1, 0);\n                  break;\n                case tc:\n                  uc(q, t, v, p, u);\n                  break;\n                case Va:\n                  fb(q, t, v, p, u, 1);\n                  break;\n                case Ab:\n                  fb(q, t, v, p, u, 1);\n                  za(p, u, 0, v, 1, 0);\n                  break;\n                case ya:\n                  fb(q, t, v, p, u, 0);\n                  break;\n                case Ja:\n                  fb(q, t, v, p, u, 0);\n                  za(p, u, 1, v, 1, 0);\n                  break;\n                case Db:\n                  Hb(q, t, v, p, u);\n                  break;\n                case Bb:\n                  Hb(q, t, v, p, u);\n                  vc(p, u, v, 1, 0);\n                  break;\n                case wc:\n                  xc(q, t, v, p, u);\n                  break;\n                default:\n                  x(0);\n              }\n              h += k;\n              m += n;\n            }\n            a.Ma += f;\n          } else alert(\"todo:EmitRescaledRowsYUVA\");\n          x(a.Ma <= c.height);\n        }\n      }\n      a.C = b;\n      x(a.C <= a.i);\n    }\n    function yc(a) {\n      var b;\n      if (0 < a.ua) return 0;\n      for (b = 0; b < a.Wb; ++b) {\n        var c = a.Ya[b].G,\n          d = a.Ya[b].H;\n        if (\n          0 < c[1][d[1] + 0].g ||\n          0 < c[2][d[2] + 0].g ||\n          0 < c[3][d[3] + 0].g\n        )\n          return 0;\n      }\n      return 1;\n    }\n    function zc(a, b, c, d, e, f) {\n      if (0 != a.Z) {\n        var g = a.qd,\n          h = a.rd;\n        for (x(null != ia[a.Z]); b < c; ++b)\n          ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n        a.qd = g;\n        a.rd = h;\n      }\n    }\n    function Ib(a, b) {\n      var c = a.l.ma,\n        d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n        d = a.C < d ? d : a.C;\n      x(b <= a.l.o);\n      if (b > d) {\n        var e = a.l.width,\n          f = c.ca,\n          g = c.tb + e * d,\n          h = a.V,\n          k = a.Ba + a.c * d,\n          l = a.gc;\n        x(1 == a.ab);\n        x(3 == l[0].hc);\n        he(l[0], d, b, h, k, f, g);\n        zc(c, d, b, f, g, e);\n      }\n      a.C = a.Ma = b;\n    }\n    function Jb(a, b, c, d, e, f, g) {\n      var h = a.$ / d,\n        k = a.$ % d,\n        l = a.m,\n        m = a.s,\n        n = c + a.$,\n        r = n;\n      e = c + d * e;\n      var q = c + d * f,\n        t = 280 + m.ua,\n        v = a.Pb ? h : 16777216,\n        p = 0 < m.ua ? m.Wa : null,\n        u = m.wc,\n        w = n < q ? ha(m, k, h) : null;\n      x(a.C < f);\n      x(q <= e);\n      var y = !1;\n      a: for (;;) {\n        for (; y || n < q; ) {\n          var A = 0;\n          if (h >= v) {\n            var v = a,\n              E = n - c;\n            x(v.Pb);\n            v.wd = v.m;\n            v.xd = E;\n            0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n            v = h + ie;\n          }\n          k & u || (w = ha(m, k, h));\n          x(null != w);\n          w.Qb && ((b[n] = w.qb), (y = !0));\n          if (!y)\n            if ((Sa(l), w.jc)) {\n              var A = l,\n                E = b,\n                B = n,\n                C = w.pd[pb(A) & (xb - 1)];\n              x(w.jc);\n              256 > C.g\n                ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n                : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n              0 == A && (y = !0);\n            } else A = ua(w.G[0], w.H[0], l);\n          if (l.h) break;\n          if (y || 256 > A) {\n            if (!y)\n              if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n              else {\n                Sa(l);\n                y = ua(w.G[1], w.H[1], l);\n                Sa(l);\n                E = ua(w.G[2], w.H[2], l);\n                B = ua(w.G[3], w.H[3], l);\n                if (l.h) break;\n                b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n              }\n            y = !1;\n            ++n;\n            ++k;\n            if (\n              k >= d &&\n              ((k = 0),\n              ++h,\n              null != g && h <= f && !(h % 16) && g(a, h),\n              null != p)\n            )\n              for (; r < n; )\n                (A = b[r++]),\n                  (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n          } else if (280 > A) {\n            A = ib(A - 256, l);\n            E = ua(w.G[4], w.H[4], l);\n            Sa(l);\n            E = ib(E, l);\n            E = nc(d, E);\n            if (l.h) break;\n            if (n - c < E || e - n < A) break a;\n            else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n            n += A;\n            for (k += A; k >= d; )\n              (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n            x(n <= e);\n            k & u && (w = ha(m, k, h));\n            if (null != p)\n              for (; r < n; )\n                (A = b[r++]),\n                  (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n          } else if (A < t) {\n            y = A - 280;\n            for (x(null != p); r < n; )\n              (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n            A = n;\n            E = p;\n            x(!(y >>> E.Xa));\n            b[A] = E.X[y];\n            y = !0;\n          } else break a;\n          y || x(l.h == db(l));\n        }\n        if (a.Pb && l.h && n < e)\n          x(a.m.h),\n            (a.a = 5),\n            (a.m = a.wd),\n            (a.$ = a.xd),\n            0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n        else if (l.h) break a;\n        else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n        return 1;\n      }\n      a.a = 3;\n      return 0;\n    }\n    function Ac(a) {\n      x(null != a);\n      a.vc = null;\n      a.yc = null;\n      a.Ya = null;\n      var b = a.Wa;\n      null != b && (b.X = null);\n      a.vb = null;\n      x(null != a);\n    }\n    function Bc() {\n      var a = new je();\n      if (null == a) return null;\n      a.a = 0;\n      a.xb = Cc;\n      gb(\"Predictor\", \"VP8LPredictors\");\n      gb(\"Predictor\", \"VP8LPredictors_C\");\n      gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n      gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n      pc = Kd;\n      Fb = Ld;\n      sc = Md;\n      Gb = Nd;\n      Hb = Od;\n      xc = Pd;\n      uc = Qd;\n      self.VP8LMapColor32b = ke;\n      self.VP8LMapColor8b = le;\n      return a;\n    }\n    function rb(a, b, c, d, e) {\n      var f = 1,\n        g = [a],\n        h = [b],\n        k = d.m,\n        l = d.s,\n        m = null,\n        n = 0;\n      a: for (;;) {\n        if (c)\n          for (; f && D(k, 1); ) {\n            var r = g,\n              q = h,\n              t = d,\n              v = 1,\n              p = t.m,\n              u = t.gc[t.ab],\n              w = D(p, 2);\n            if (t.Oc & (1 << w)) f = 0;\n            else {\n              t.Oc |= 1 << w;\n              u.hc = w;\n              u.Ea = r[0];\n              u.nc = q[0];\n              u.K = [null];\n              ++t.ab;\n              x(4 >= t.ab);\n              switch (w) {\n                case 0:\n                case 1:\n                  u.b = D(p, 3) + 2;\n                  v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n                  u.K = u.K[0];\n                  break;\n                case 3:\n                  var y = D(p, 8) + 1,\n                    A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n                  r[0] = xa(u.Ea, A);\n                  u.b = A;\n                  var v = rb(y, 1, 0, t, u.K),\n                    E;\n                  if ((E = v)) {\n                    var B,\n                      C = y,\n                      N = u,\n                      z = 1 << (8 >> N.b),\n                      Q = V(z);\n                    if (null == Q) E = 0;\n                    else {\n                      var S = N.K[0],\n                        K = N.w;\n                      Q[0] = N.K[0][0];\n                      for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n                      for (; B < 4 * z; ++B) Q[B] = 0;\n                      N.K[0] = null;\n                      N.K[0] = Q;\n                      E = 1;\n                    }\n                  }\n                  v = E;\n                  break;\n                case 2:\n                  break;\n                default:\n                  x(0);\n              }\n              f = v;\n            }\n          }\n        g = g[0];\n        h = h[0];\n        if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n          d.a = 3;\n          break a;\n        }\n        var H;\n        if ((H = f))\n          b: {\n            var F = d,\n              G = g,\n              L = h,\n              J = n,\n              T = c,\n              Da,\n              ba,\n              X = F.m,\n              R = F.s,\n              P = [null],\n              U,\n              W = 1,\n              aa = 0,\n              na = me[J];\n            c: for (;;) {\n              if (T && D(X, 1)) {\n                var ca = D(X, 3) + 2,\n                  ga = xa(G, ca),\n                  ka = xa(L, ca),\n                  qa = ga * ka;\n                if (!rb(ga, ka, 0, F, P)) break c;\n                P = P[0];\n                R.xc = ca;\n                for (Da = 0; Da < qa; ++Da) {\n                  var ia = (P[Da] >> 8) & 65535;\n                  P[Da] = ia;\n                  ia >= W && (W = ia + 1);\n                }\n              }\n              if (X.h) break c;\n              for (ba = 0; 5 > ba; ++ba) {\n                var Y = Dc[ba];\n                !ba && 0 < J && (Y += 1 << J);\n                aa < Y && (aa = Y);\n              }\n              var ma = wa(W * na, O);\n              var ua = W,\n                va = wa(ua, Ub);\n              if (null == va) var la = null;\n              else x(65536 >= ua), (la = va);\n              var ha = V(aa);\n              if (null == la || null == ha || null == ma) {\n                F.a = 1;\n                break c;\n              }\n              var pa = ma;\n              for (Da = U = 0; Da < W; ++Da) {\n                var ja = la[Da],\n                  da = ja.G,\n                  ea = ja.H,\n                  Fa = 0,\n                  ra = 1,\n                  Ha = 0;\n                for (ba = 0; 5 > ba; ++ba) {\n                  Y = Dc[ba];\n                  da[ba] = pa;\n                  ea[ba] = U;\n                  !ba && 0 < J && (Y += 1 << J);\n                  d: {\n                    var sa,\n                      za = Y,\n                      ta = F,\n                      oa = ha,\n                      db = pa,\n                      eb = U,\n                      Ia = 0,\n                      Ka = ta.m,\n                      fb = D(Ka, 1);\n                    M(oa, 0, 0, za);\n                    if (fb) {\n                      var gb = D(Ka, 1) + 1,\n                        hb = D(Ka, 1),\n                        Ja = D(Ka, 0 == hb ? 1 : 8);\n                      oa[Ja] = 1;\n                      2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n                      var ya = 1;\n                    } else {\n                      var Ua = V(19),\n                        Va = D(Ka, 4) + 4;\n                      if (19 < Va) {\n                        ta.a = 3;\n                        var Aa = 0;\n                        break d;\n                      }\n                      for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n                      var Ba = void 0,\n                        sb = void 0,\n                        Wa = ta,\n                        ib = Ua,\n                        Ca = za,\n                        Xa = oa,\n                        Oa = 0,\n                        La = Wa.m,\n                        Ya = 8,\n                        Za = wa(128, O);\n                      e: for (;;) {\n                        if (!Z(Za, 0, 7, ib, 19)) break e;\n                        if (D(La, 1)) {\n                          var kb = 2 + 2 * D(La, 3),\n                            Ba = 2 + D(La, kb);\n                          if (Ba > Ca) break e;\n                        } else Ba = Ca;\n                        for (sb = 0; sb < Ca && Ba--; ) {\n                          Sa(La);\n                          var $a = Za[0 + (pb(La) & 127)];\n                          qb(La, La.u + $a.g);\n                          var jb = $a.value;\n                          if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n                          else {\n                            var lb = 16 == jb,\n                              ab = jb - 16,\n                              mb = oe[ab],\n                              bb = D(La, pe[ab]) + mb;\n                            if (sb + bb > Ca) break e;\n                            else\n                              for (var nb = lb ? Ya : 0; 0 < bb--; )\n                                Xa[sb++] = nb;\n                          }\n                        }\n                        Oa = 1;\n                        break e;\n                      }\n                      Oa || (Wa.a = 3);\n                      ya = Oa;\n                    }\n                    (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n                    ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n                  }\n                  if (0 == Aa) break c;\n                  ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n                  Fa += pa[U].g;\n                  U += Aa;\n                  if (3 >= ba) {\n                    var Pa = ha[0],\n                      tb;\n                    for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n                    Ha += Pa;\n                  }\n                }\n                ja.nd = ra;\n                ja.Qb = 0;\n                ra &&\n                  ((ja.qb =\n                    ((da[3][ea[3] + 0].value << 24) |\n                      (da[1][ea[1] + 0].value << 16) |\n                      da[2][ea[2] + 0].value) >>>\n                    0),\n                  0 == Fa &&\n                    256 > da[0][ea[0] + 0].value &&\n                    ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n                ja.jc = !ja.Qb && 6 > Ha;\n                if (ja.jc) {\n                  var Ga,\n                    Ea = ja;\n                  for (Ga = 0; Ga < xb; ++Ga) {\n                    var Ma = Ga,\n                      Na = Ea.pd[Ma],\n                      vb = Ea.G[0][Ea.H[0] + Ma];\n                    256 <= vb.value\n                      ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n                      : ((Na.g = 0),\n                        (Na.value = 0),\n                        (Ma >>= ub(vb, 8, Na)),\n                        (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n                        (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n                        ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n                  }\n                }\n              }\n              R.vc = P;\n              R.Wb = W;\n              R.Ya = la;\n              R.yc = ma;\n              H = 1;\n              break b;\n            }\n            H = 0;\n          }\n        f = H;\n        if (!f) {\n          d.a = 3;\n          break a;\n        }\n        if (0 < n) {\n          if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n            d.a = 1;\n            f = 0;\n            break a;\n          }\n        } else l.ua = 0;\n        var Qa = d,\n          cb = g,\n          ob = h,\n          Ra = Qa.s,\n          Ta = Ra.xc;\n        Qa.c = cb;\n        Qa.i = ob;\n        Ra.md = xa(cb, Ta);\n        Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n        if (c) {\n          d.xb = re;\n          break a;\n        }\n        m = V(g * h);\n        if (null == m) {\n          d.a = 1;\n          f = 0;\n          break a;\n        }\n        f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n        break a;\n      }\n      f\n        ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n        : Ac(l);\n      return f;\n    }\n    function Ec(a, b) {\n      var c = a.c * a.i,\n        d = c + b + 16 * b;\n      x(a.c <= b);\n      a.V = V(d);\n      if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n      a.Ta = a.V;\n      a.Ua = a.Ba + c + b;\n      return 1;\n    }\n    function se(a, b) {\n      var c = a.C,\n        d = b - c,\n        e = a.V,\n        f = a.Ba + a.c * c;\n      for (x(b <= a.l.o); 0 < d; ) {\n        var g = 16 < d ? 16 : d,\n          h = a.l.ma,\n          k = a.l.width,\n          l = k * g,\n          m = h.ca,\n          n = h.tb + k * c,\n          r = a.Ta,\n          q = a.Ua;\n        oc(a, g, e, f);\n        Fc(r, q, m, n, l);\n        zc(h, c, c + g, m, n, k);\n        d -= g;\n        e += g * a.c;\n        c += g;\n      }\n      x(c == b);\n      a.C = a.Ma = b;\n    }\n    function te(a, b) {\n      var c = [0],\n        d = [0],\n        e = [0];\n      a: for (;;) {\n        if (null == a) return 0;\n        if (null == b) return (a.a = 2), 0;\n        a.l = b;\n        a.a = 0;\n        cb(a.m, b.data, b.w, b.ha);\n        if (!mc(a.m, c, d, e)) {\n          a.a = 3;\n          break a;\n        }\n        a.xb = Cc;\n        b.width = c[0];\n        b.height = d[0];\n        if (!rb(c[0], d[0], 1, a, null)) break a;\n        return 1;\n      }\n      x(0 != a.a);\n      return 0;\n    }\n    function ue() {\n      this.ub = this.yd = this.td = this.Rb = 0;\n    }\n    function ve() {\n      this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n    }\n    function we() {\n      this.Fb = this.Bb = this.Cb = 0;\n      this.Zb = V(4);\n      this.Lb = V(4);\n    }\n    function Gc() {\n      this.Yb = wb();\n    }\n    function xe() {\n      this.jb = V(3);\n      this.Wc = Ed([4, 8], Gc);\n      this.Xc = Ed([4, 17], Gc);\n    }\n    function ye() {\n      this.Pc = this.wb = this.Tb = this.zd = 0;\n      this.vd = new V(4);\n      this.od = new V(4);\n    }\n    function Xa() {\n      this.ld = this.La = this.dd = this.tc = 0;\n    }\n    function Hc() {\n      this.Na = this.la = 0;\n    }\n    function ze() {\n      this.Sc = [0, 0];\n      this.Eb = [0, 0];\n      this.Qc = [0, 0];\n      this.ia = this.lc = 0;\n    }\n    function Kb() {\n      this.ad = V(384);\n      this.Za = 0;\n      this.Ob = V(16);\n      this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n    }\n    function Ae() {\n      this.uc = this.M = this.Nb = 0;\n      this.wa = Array(new Xa());\n      this.Y = 0;\n      this.ya = Array(new Kb());\n      this.aa = 0;\n      this.l = new Oa();\n    }\n    function Ic() {\n      this.y = V(16);\n      this.f = V(8);\n      this.ea = V(8);\n    }\n    function Be() {\n      this.cb = this.a = 0;\n      this.sc = \"\";\n      this.m = new Wb();\n      this.Od = new ue();\n      this.Kc = new ve();\n      this.ed = new ye();\n      this.Qa = new we();\n      this.Ic = this.$c = this.Aa = 0;\n      this.D = new Ae();\n      this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n      this.Jc = wa(8, Wb);\n      this.ia = 0;\n      new F();\n      this.pb = wa(4, ze);\n      this.Pa = new xe();\n      this.Bd = this.kc = 0;\n      this.Ac = [];\n      this.Bc = 0;\n      this.zc = [0, 0, 0, 0];\n      this.Gd = Array(new Ic());\n      this.Hd = 0;\n      this.rb = Array(new Hc());\n      this.sb = 0;\n      this.wa = Array(new Xa());\n      this.Y = 0;\n      this.oc = [];\n      this.pc = 0;\n      this.sa = [];\n      this.ta = 0;\n      this.qa = [];\n      this.ra = 0;\n      this.Ha = [];\n      this.B = this.R = this.Ia = 0;\n      this.Ec = [];\n      this.M = this.ja = this.Vb = this.Fc = 0;\n      this.ya = Array(new Kb());\n      this.L = this.aa = 0;\n      this.gd = Ed([4, 2], Xa);\n      this.ga = null;\n      this.Fa = [];\n      this.Cc = this.qc = this.P = 0;\n      this.Gb = [];\n      this.Uc = 0;\n      this.mb = [];\n      this.nb = 0;\n      this.rc = [];\n      this.Ga = this.Vc = 0;\n    }\n    function ga(a, b) {\n      return 0 > a ? 0 : a > b ? b : a;\n    }\n    function Oa() {\n      this.T = this.U = this.ka = this.height = this.width = 0;\n      this.y = [];\n      this.f = [];\n      this.ea = [];\n      this.Rc = this.fa = this.W = this.N = this.O = 0;\n      this.ma = \"void\";\n      this.put = \"VP8IoPutHook\";\n      this.ac = \"VP8IoSetupHook\";\n      this.bc = \"VP8IoTeardownHook\";\n      this.ha = this.Kb = 0;\n      this.data = [];\n      this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n      this.F = [];\n      this.J = 0;\n    }\n    function Ce() {\n      var a = new Be();\n      null != a &&\n        ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n      return a;\n    }\n    function T(a, b, c) {\n      0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n      return 0;\n    }\n    function Jc(a, b, c) {\n      return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n    }\n    function Kc(a, b) {\n      if (null == a) return 0;\n      a.a = 0;\n      a.sc = \"OK\";\n      if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n      var c = b.data;\n      var d = b.w;\n      var e = b.ha;\n      if (4 > e) return T(a, 7, \"Truncated header.\");\n      var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n      var g = a.Od;\n      g.Rb = !(f & 1);\n      g.td = (f >> 1) & 7;\n      g.yd = (f >> 4) & 1;\n      g.ub = f >> 5;\n      if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n      if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n      d += 3;\n      e -= 3;\n      var h = a.Kc;\n      if (g.Rb) {\n        if (7 > e) return T(a, 7, \"cannot parse picture header\");\n        if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n        h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n        h.Td = c[d + 4] >> 6;\n        h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n        h.Ud = c[d + 6] >> 6;\n        d += 7;\n        e -= 7;\n        a.za = (h.c + 15) >> 4;\n        a.Ub = (h.i + 15) >> 4;\n        b.width = h.c;\n        b.height = h.i;\n        b.Da = 0;\n        b.j = 0;\n        b.v = 0;\n        b.va = b.width;\n        b.o = b.height;\n        b.da = 0;\n        b.ib = b.width;\n        b.hb = b.height;\n        b.U = b.width;\n        b.T = b.height;\n        f = a.Pa;\n        M(f.jb, 0, 255, f.jb.length);\n        f = a.Qa;\n        x(null != f);\n        f.Cb = 0;\n        f.Bb = 0;\n        f.Fb = 1;\n        M(f.Zb, 0, 0, f.Zb.length);\n        M(f.Lb, 0, 0, f.Lb);\n      }\n      if (g.ub > e) return T(a, 7, \"bad partition length\");\n      f = a.m;\n      ma(f, c, d, g.ub);\n      d += g.ub;\n      e -= g.ub;\n      g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n      h = a.Qa;\n      var k = a.Pa,\n        l;\n      x(null != f);\n      x(null != h);\n      h.Cb = G(f);\n      if (h.Cb) {\n        h.Bb = G(f);\n        if (G(f)) {\n          h.Fb = G(f);\n          for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n          for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n        }\n        if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n      } else h.Bb = 0;\n      if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n      h = a.ed;\n      h.zd = G(f);\n      h.Tb = na(f, 6);\n      h.wb = na(f, 3);\n      h.Pc = G(f);\n      if (h.Pc && G(f)) {\n        for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n        for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n      }\n      a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n      if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n      l = d;\n      var m = e;\n      e = l;\n      d = l + m;\n      h = m;\n      a.Xb = (1 << na(a.m, 2)) - 1;\n      k = a.Xb;\n      if (m < 3 * k) c = 7;\n      else {\n        l += 3 * k;\n        h -= 3 * k;\n        for (m = 0; m < k; ++m) {\n          var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n          n > h && (n = h);\n          ma(a.Jc[+m], c, l, n);\n          l += n;\n          h -= n;\n          e += 3;\n        }\n        ma(a.Jc[+k], c, l, h);\n        c = l < d ? 0 : 5;\n      }\n      if (0 != c) return T(a, c, \"cannot parse partitions\");\n      l = a.m;\n      c = na(l, 7);\n      e = G(l) ? ca(l, 4) : 0;\n      d = G(l) ? ca(l, 4) : 0;\n      h = G(l) ? ca(l, 4) : 0;\n      k = G(l) ? ca(l, 4) : 0;\n      l = G(l) ? ca(l, 4) : 0;\n      m = a.Qa;\n      for (n = 0; 4 > n; ++n) {\n        if (m.Cb) {\n          var r = m.Zb[n];\n          m.Fb || (r += c);\n        } else if (0 < n) {\n          a.pb[n] = a.pb[0];\n          continue;\n        } else r = c;\n        var q = a.pb[n];\n        q.Sc[0] = Lb[ga(r + e, 127)];\n        q.Sc[1] = Mb[ga(r + 0, 127)];\n        q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n        q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n        8 > q.Eb[1] && (q.Eb[1] = 8);\n        q.Qc[0] = Lb[ga(r + k, 117)];\n        q.Qc[1] = Mb[ga(r + l, 127)];\n        q.lc = r + l;\n      }\n      if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n      G(f);\n      g = a.Pa;\n      for (c = 0; 4 > c; ++c) {\n        for (e = 0; 8 > e; ++e)\n          for (d = 0; 3 > d; ++d)\n            for (h = 0; 11 > h; ++h)\n              (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n                (g.Wc[c][e].Yb[d][h] = k);\n        for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n      }\n      a.kc = G(f);\n      a.kc && (a.Bd = na(f, 8));\n      return (a.cb = 1);\n    }\n    function De(a, b, c, d, e, f, g) {\n      var h = b[e].Yb[c];\n      for (c = 0; 16 > e; ++e) {\n        if (!K(a, h[c + 0])) return e;\n        for (; !K(a, h[c + 1]); )\n          if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n        var k = b[e + 1].Yb;\n        if (K(a, h[c + 2])) {\n          var l = a,\n            m = h,\n            n = c;\n          var r = 0;\n          if (K(l, m[n + 3]))\n            if (K(l, m[n + 6])) {\n              h = 0;\n              r = K(l, m[n + 8]);\n              m = K(l, m[n + 9 + r]);\n              n = 2 * r + m;\n              r = 0;\n              for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n              r += 3 + (8 << n);\n            } else\n              K(l, m[n + 7])\n                ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n                : (r = 5 + K(l, 159));\n          else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n          h = k[2];\n        } else (r = 1), (h = k[1]);\n        k = g + Ie[e];\n        l = a;\n        0 > l.b && Qa(l);\n        var m = l.b,\n          n = l.Ca >> 1,\n          q = (n - (l.I >> m)) >> 31;\n        --l.b;\n        l.Ca += q;\n        l.Ca |= 1;\n        l.I -= ((n + 1) & q) << m;\n        f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n      }\n      return 16;\n    }\n    function Lc(a) {\n      var b = a.rb[a.sb - 1];\n      b.la = 0;\n      b.Na = 0;\n      M(a.zc, 0, 0, a.zc.length);\n      a.ja = 0;\n    }\n    function Je(a, b) {\n      for (a.M = 0; a.M < a.Va; ++a.M) {\n        var c = a.Jc[a.M & a.Xb],\n          d = a.m,\n          e = a,\n          f;\n        for (f = 0; f < e.za; ++f) {\n          var g = d;\n          var h = e;\n          var k = h.Ac,\n            l = h.Bc + 4 * f,\n            m = h.zc,\n            n = h.ya[h.aa + f];\n          h.Qa.Bb\n            ? (n.$b = K(g, h.Pa.jb[0])\n                ? 2 + K(g, h.Pa.jb[2])\n                : K(g, h.Pa.jb[1]))\n            : (n.$b = 0);\n          h.kc && (n.Ad = K(g, h.Bd));\n          n.Za = !K(g, 145) + 0;\n          if (n.Za) {\n            var r = n.Ob,\n              q = 0;\n            for (h = 0; 4 > h; ++h) {\n              var t = m[0 + h];\n              var v;\n              for (v = 0; 4 > v; ++v) {\n                t = Ke[k[l + v]][t];\n                for (var p = Mc[K(g, t[0])]; 0 < p; )\n                  p = Mc[2 * p + K(g, t[p])];\n                t = -p;\n                k[l + v] = t;\n              }\n              I(r, q, k, l, 4);\n              q += 4;\n              m[0 + h] = t;\n            }\n          } else\n            (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n              (n.Ob[0] = t),\n              M(k, l, t, 4),\n              M(m, 0, t, 4);\n          n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n        }\n        if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n        for (; a.ja < a.za; ++a.ja) {\n          d = a;\n          e = c;\n          g = d.rb[d.sb - 1];\n          k = d.rb[d.sb + d.ja];\n          f = d.ya[d.aa + d.ja];\n          if ((l = d.kc ? f.Ad : 0))\n            (g.la = k.la = 0),\n              f.Za || (g.Na = k.Na = 0),\n              (f.Hc = 0),\n              (f.Gc = 0),\n              (f.ia = 0);\n          else {\n            var u,\n              w,\n              g = k,\n              k = e,\n              l = d.Pa.Xc,\n              m = d.ya[d.aa + d.ja],\n              n = d.pb[m.$b];\n            h = m.ad;\n            r = 0;\n            q = d.rb[d.sb - 1];\n            t = v = 0;\n            M(h, r, 0, 384);\n            if (m.Za) {\n              var y = 0;\n              var A = l[3];\n            } else {\n              p = V(16);\n              var E = g.Na + q.Na;\n              E = oa(k, l[1], E, n.Eb, 0, p, 0);\n              g.Na = q.Na = (0 < E) + 0;\n              if (1 < E) Nc(p, 0, h, r);\n              else {\n                var B = (p[0] + 3) >> 3;\n                for (p = 0; 256 > p; p += 16) h[r + p] = B;\n              }\n              y = 1;\n              A = l[0];\n            }\n            var C = g.la & 15;\n            var N = q.la & 15;\n            for (p = 0; 4 > p; ++p) {\n              var z = N & 1;\n              for (B = w = 0; 4 > B; ++B)\n                (E = z + (C & 1)),\n                  (E = oa(k, A, E, n.Sc, y, h, r)),\n                  (z = E > y),\n                  (C = (C >> 1) | (z << 7)),\n                  (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n                  (r += 16);\n              C >>= 4;\n              N = (N >> 1) | (z << 7);\n              v = ((v << 8) | w) >>> 0;\n            }\n            A = C;\n            y = N >> 4;\n            for (u = 0; 4 > u; u += 2) {\n              w = 0;\n              C = g.la >> (4 + u);\n              N = q.la >> (4 + u);\n              for (p = 0; 2 > p; ++p) {\n                z = N & 1;\n                for (B = 0; 2 > B; ++B)\n                  (E = z + (C & 1)),\n                    (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n                    (z = 0 < E),\n                    (C = (C >> 1) | (z << 3)),\n                    (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n                    (r += 16);\n                C >>= 2;\n                N = (N >> 1) | (z << 5);\n              }\n              t |= w << (4 * u);\n              A |= (C << 4) << u;\n              y |= (N & 240) << u;\n            }\n            g.la = A;\n            q.la = y;\n            m.Hc = v;\n            m.Gc = t;\n            m.ia = t & 43690 ? 0 : n.ia;\n            l = !(v | t);\n          }\n          0 < d.L &&\n            ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n            (d.wa[d.Y + d.ja].La |= !l));\n          if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n        }\n        Lc(a);\n        c = a;\n        d = b;\n        e = 1;\n        f = c.D;\n        g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n        if (0 == c.Aa)\n          a: {\n            (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n            w = c.D;\n            f = w.Nb;\n            t = Ya[c.L];\n            g = t * c.R;\n            k = (t / 2) * c.B;\n            p = 16 * f * c.R;\n            B = 8 * f * c.B;\n            l = c.sa;\n            m = c.ta - g + p;\n            n = c.qa;\n            h = c.ra - k + B;\n            r = c.Ha;\n            q = c.Ia - k + B;\n            C = w.M;\n            N = 0 == C;\n            v = C >= c.Va - 1;\n            2 == c.Aa && Oc(c, w);\n            if (w.uc)\n              for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n                var Q = E;\n                y = w;\n                A = z;\n                var S = Q.D,\n                  D = S.Nb;\n                u = Q.R;\n                var S = S.wa[S.Y + y],\n                  F = Q.sa,\n                  H = Q.ta + 16 * D * u + 16 * y,\n                  J = S.dd,\n                  G = S.tc;\n                if (0 != G)\n                  if ((x(3 <= G), 1 == Q.L))\n                    0 < y && Pc(F, H, u, G + 4),\n                      S.La && Qc(F, H, u, G),\n                      0 < A && Rc(F, H, u, G + 4),\n                      S.La && Sc(F, H, u, G);\n                  else {\n                    var L = Q.B,\n                      O = Q.qa,\n                      P = Q.ra + 8 * D * L + 8 * y,\n                      R = Q.Ha,\n                      Q = Q.Ia + 8 * D * L + 8 * y,\n                      D = S.ld;\n                    0 < y &&\n                      (Tc(F, H, u, G + 4, J, D),\n                      Uc(O, P, R, Q, L, G + 4, J, D));\n                    S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n                    0 < A &&\n                      (Xc(F, H, u, G + 4, J, D),\n                      Yc(O, P, R, Q, L, G + 4, J, D));\n                    S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n                  }\n              }\n            c.ia && alert(\"todo:DitherRow\");\n            if (null != d.put) {\n              w = 16 * C;\n              C = 16 * (C + 1);\n              N\n                ? ((d.y = c.sa),\n                  (d.O = c.ta + p),\n                  (d.f = c.qa),\n                  (d.N = c.ra + B),\n                  (d.ea = c.Ha),\n                  (d.W = c.Ia + B))\n                : ((w -= t),\n                  (d.y = l),\n                  (d.O = m),\n                  (d.f = n),\n                  (d.N = h),\n                  (d.ea = r),\n                  (d.W = q));\n              v || (C -= t);\n              C > d.o && (C = d.o);\n              d.F = null;\n              d.J = null;\n              if (\n                null != c.Fa &&\n                0 < c.Fa.length &&\n                w < C &&\n                ((d.J = Le(c, d, w, C - w)),\n                (d.F = c.mb),\n                null == d.F && 0 == d.F.length)\n              ) {\n                e = T(c, 3, \"Could not decode alpha data.\");\n                break a;\n              }\n              w < d.j &&\n                ((t = d.j - w),\n                (w = d.j),\n                x(!(t & 1)),\n                (d.O += c.R * t),\n                (d.N += c.B * (t >> 1)),\n                (d.W += c.B * (t >> 1)),\n                null != d.F && (d.J += d.width * t));\n              w < C &&\n                ((d.O += d.v),\n                (d.N += d.v >> 1),\n                (d.W += d.v >> 1),\n                null != d.F && (d.J += d.v),\n                (d.ka = w - d.j),\n                (d.U = d.va - d.v),\n                (d.T = C - w),\n                (e = d.put(d)));\n            }\n            f + 1 != c.Ic ||\n              v ||\n              (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n              I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n              I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n          }\n        if (!e) return T(a, 6, \"Output aborted.\");\n      }\n      return 1;\n    }\n    function Me(a, b) {\n      if (null == a) return 0;\n      if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n      if (!a.cb && !Kc(a, b)) return 0;\n      x(a.cb);\n      if (null == b.ac || b.ac(b)) {\n        b.ob && (a.L = 0);\n        var c = Ya[a.L];\n        2 == a.L\n          ? ((a.yb = 0), (a.zb = 0))\n          : ((a.yb = (b.v - c) >> 4),\n            (a.zb = (b.j - c) >> 4),\n            0 > a.yb && (a.yb = 0),\n            0 > a.zb && (a.zb = 0));\n        a.Va = (b.o + 15 + c) >> 4;\n        a.Hb = (b.va + 15 + c) >> 4;\n        a.Hb > a.za && (a.Hb = a.za);\n        a.Va > a.Ub && (a.Va = a.Ub);\n        if (0 < a.L) {\n          var d = a.ed;\n          for (c = 0; 4 > c; ++c) {\n            var e;\n            if (a.Qa.Cb) {\n              var f = a.Qa.Lb[c];\n              a.Qa.Fb || (f += d.Tb);\n            } else f = d.Tb;\n            for (e = 0; 1 >= e; ++e) {\n              var g = a.gd[c][e],\n                h = f;\n              d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n              h = 0 > h ? 0 : 63 < h ? 63 : h;\n              if (0 < h) {\n                var k = h;\n                0 < d.wb &&\n                  ((k = 4 < d.wb ? k >> 2 : k >> 1),\n                  k > 9 - d.wb && (k = 9 - d.wb));\n                1 > k && (k = 1);\n                g.dd = k;\n                g.tc = 2 * h + k;\n                g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n              } else g.tc = 0;\n              g.La = e;\n            }\n          }\n        }\n        c = 0;\n      } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n      if ((c = 0 == c)) {\n        if (c) {\n          a.$c = 0;\n          0 < a.Aa || (a.Ic = Ne);\n          b: {\n            c = a.Ic;\n            var k = a.za,\n              d = 4 * k,\n              l = 32 * k,\n              m = k + 1,\n              n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n              r = (2 == a.Aa ? 2 : 1) * k;\n            e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n            f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n            g = d + 832 + e + f;\n            if (g != g) c = 0;\n            else {\n              if (g > a.Vb) {\n                a.Vb = 0;\n                a.Ec = V(g);\n                a.Fc = 0;\n                if (null == a.Ec) {\n                  c = T(a, 1, \"no memory during frame initialization.\");\n                  break b;\n                }\n                a.Vb = g;\n              }\n              g = a.Ec;\n              h = a.Fc;\n              a.Ac = g;\n              a.Bc = h;\n              h += d;\n              a.Gd = wa(l, Ic);\n              a.Hd = 0;\n              a.rb = wa(m + 1, Hc);\n              a.sb = 1;\n              a.wa = n ? wa(n, Xa) : null;\n              a.Y = 0;\n              a.D.Nb = 0;\n              a.D.wa = a.wa;\n              a.D.Y = a.Y;\n              0 < a.Aa && (a.D.Y += k);\n              x(!0);\n              a.oc = g;\n              a.pc = h;\n              h += 832;\n              a.ya = wa(r, Kb);\n              a.aa = 0;\n              a.D.ya = a.ya;\n              a.D.aa = a.aa;\n              2 == a.Aa && (a.D.aa += k);\n              a.R = 16 * k;\n              a.B = 8 * k;\n              l = Ya[a.L];\n              k = l * a.R;\n              l = (l / 2) * a.B;\n              a.sa = g;\n              a.ta = h + k;\n              a.qa = a.sa;\n              a.ra = a.ta + 16 * c * a.R + l;\n              a.Ha = a.qa;\n              a.Ia = a.ra + 8 * c * a.B + l;\n              a.$c = 0;\n              h += e;\n              a.mb = f ? g : null;\n              a.nb = f ? h : null;\n              x(h + f <= a.Fc + a.Vb);\n              Lc(a);\n              M(a.Ac, a.Bc, 0, d);\n              c = 1;\n            }\n          }\n          if (c) {\n            b.ka = 0;\n            b.y = a.sa;\n            b.O = a.ta;\n            b.f = a.qa;\n            b.N = a.ra;\n            b.ea = a.Ha;\n            b.Vd = a.Ia;\n            b.fa = a.R;\n            b.Rc = a.B;\n            b.F = null;\n            b.J = 0;\n            if (!ad) {\n              for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n              for (c = -1020; 1020 >= c; ++c)\n                cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n              for (c = -112; 112 >= c; ++c)\n                dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n              for (c = -255; 510 >= c; ++c)\n                ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n              ad = 1;\n            }\n            Nc = Oe;\n            Za = Pe;\n            Nb = Qe;\n            pa = Re;\n            Ob = Se;\n            fd = Te;\n            Xc = Ue;\n            Tc = Ve;\n            Yc = We;\n            Uc = Xe;\n            Zc = Ye;\n            Vc = Ze;\n            $c = $e;\n            Wc = af;\n            Rc = gd;\n            Pc = hd;\n            Sc = bf;\n            Qc = cf;\n            W[0] = df;\n            W[1] = ef;\n            W[2] = ff;\n            W[3] = gf;\n            W[4] = hf;\n            W[5] = jf;\n            W[6] = kf;\n            W[7] = lf;\n            W[8] = mf;\n            W[9] = nf;\n            Y[0] = of;\n            Y[1] = pf;\n            Y[2] = qf;\n            Y[3] = rf;\n            Y[4] = sf;\n            Y[5] = tf;\n            Y[6] = uf;\n            ka[0] = vf;\n            ka[1] = wf;\n            ka[2] = xf;\n            ka[3] = yf;\n            ka[4] = zf;\n            ka[5] = Af;\n            ka[6] = Bf;\n            c = 1;\n          } else c = 0;\n        }\n        c && (c = Je(a, b));\n        null != b.bc && b.bc(b);\n        c &= 1;\n      }\n      if (!c) return 0;\n      a.cb = 0;\n      return c;\n    }\n    function qa(a, b, c, d, e) {\n      e = a[b + c + 32 * d] + (e >> 3);\n      a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n    }\n    function kb(a, b, c, d, e, f) {\n      qa(a, b, 0, c, d + e);\n      qa(a, b, 1, c, d + f);\n      qa(a, b, 2, c, d - f);\n      qa(a, b, 3, c, d - e);\n    }\n    function da(a) {\n      return ((20091 * a) >> 16) + a;\n    }\n    function id(a, b, c, d) {\n      var e = 0,\n        f;\n      var g = V(16);\n      for (f = 0; 4 > f; ++f) {\n        var h = a[b + 0] + a[b + 8];\n        var k = a[b + 0] - a[b + 8];\n        var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n        var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n        g[e + 0] = h + m;\n        g[e + 1] = k + l;\n        g[e + 2] = k - l;\n        g[e + 3] = h - m;\n        e += 4;\n        b++;\n      }\n      for (f = e = 0; 4 > f; ++f)\n        (a = g[e + 0] + 4),\n          (h = a + g[e + 8]),\n          (k = a - g[e + 8]),\n          (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n          (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n          qa(c, d, 0, 0, h + m),\n          qa(c, d, 1, 0, k + l),\n          qa(c, d, 2, 0, k - l),\n          qa(c, d, 3, 0, h - m),\n          e++,\n          (d += 32);\n    }\n    function Te(a, b, c, d) {\n      var e = a[b + 0] + 4,\n        f = (35468 * a[b + 4]) >> 16,\n        g = da(a[b + 4]),\n        h = (35468 * a[b + 1]) >> 16;\n      a = da(a[b + 1]);\n      kb(c, d, 0, e + g, a, h);\n      kb(c, d, 1, e + f, a, h);\n      kb(c, d, 2, e - f, a, h);\n      kb(c, d, 3, e - g, a, h);\n    }\n    function Pe(a, b, c, d, e) {\n      id(a, b, c, d);\n      e && id(a, b + 16, c, d + 4);\n    }\n    function Qe(a, b, c, d) {\n      Za(a, b + 0, c, d, 1);\n      Za(a, b + 32, c, d + 128, 1);\n    }\n    function Re(a, b, c, d) {\n      a = a[b + 0] + 4;\n      var e;\n      for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n    }\n    function Se(a, b, c, d) {\n      a[b + 0] && pa(a, b + 0, c, d);\n      a[b + 16] && pa(a, b + 16, c, d + 4);\n      a[b + 32] && pa(a, b + 32, c, d + 128);\n      a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n    }\n    function Oe(a, b, c, d) {\n      var e = V(16),\n        f;\n      for (f = 0; 4 > f; ++f) {\n        var g = a[b + 0 + f] + a[b + 12 + f];\n        var h = a[b + 4 + f] + a[b + 8 + f];\n        var k = a[b + 4 + f] - a[b + 8 + f];\n        var l = a[b + 0 + f] - a[b + 12 + f];\n        e[0 + f] = g + h;\n        e[8 + f] = g - h;\n        e[4 + f] = l + k;\n        e[12 + f] = l - k;\n      }\n      for (f = 0; 4 > f; ++f)\n        (a = e[0 + 4 * f] + 3),\n          (g = a + e[3 + 4 * f]),\n          (h = e[1 + 4 * f] + e[2 + 4 * f]),\n          (k = e[1 + 4 * f] - e[2 + 4 * f]),\n          (l = a - e[3 + 4 * f]),\n          (c[d + 0] = (g + h) >> 3),\n          (c[d + 16] = (l + k) >> 3),\n          (c[d + 32] = (g - h) >> 3),\n          (c[d + 48] = (l - k) >> 3),\n          (d += 64);\n    }\n    function Pb(a, b, c) {\n      var d = b - 32,\n        e = R,\n        f = 255 - a[d - 1],\n        g;\n      for (g = 0; g < c; ++g) {\n        var h = e,\n          k = f + a[b - 1],\n          l;\n        for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n        b += 32;\n      }\n    }\n    function ef(a, b) {\n      Pb(a, b, 4);\n    }\n    function wf(a, b) {\n      Pb(a, b, 8);\n    }\n    function pf(a, b) {\n      Pb(a, b, 16);\n    }\n    function qf(a, b) {\n      var c;\n      for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n    }\n    function rf(a, b) {\n      var c;\n      for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n    }\n    function $a(a, b, c) {\n      var d;\n      for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n    }\n    function of(a, b) {\n      var c = 16,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n      $a(c >> 5, a, b);\n    }\n    function sf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n      $a(c >> 4, a, b);\n    }\n    function tf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n      $a(c >> 4, a, b);\n    }\n    function uf(a, b) {\n      $a(128, a, b);\n    }\n    function z(a, b, c) {\n      return (a + 2 * b + c + 2) >> 2;\n    }\n    function ff(a, b) {\n      var c = b - 32,\n        c = new Uint8Array([\n          z(a[c - 1], a[c + 0], a[c + 1]),\n          z(a[c + 0], a[c + 1], a[c + 2]),\n          z(a[c + 1], a[c + 2], a[c + 3]),\n          z(a[c + 2], a[c + 3], a[c + 4])\n        ]),\n        d;\n      for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n    }\n    function gf(a, b) {\n      var c = a[b - 1],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96];\n      ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n      ra(a, b + 32, 16843009 * z(c, d, e));\n      ra(a, b + 64, 16843009 * z(d, e, f));\n      ra(a, b + 96, 16843009 * z(e, f, f));\n    }\n    function df(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n      c >>= 3;\n      for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n    }\n    function hf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 - 32],\n        g = a[b + 0 - 32],\n        h = a[b + 1 - 32],\n        k = a[b + 2 - 32],\n        l = a[b + 3 - 32];\n      a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n      a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n      a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n      a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n      a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n      a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n      a[b + 3 + 0] = z(l, k, h);\n    }\n    function kf(a, b) {\n      var c = a[b + 1 - 32],\n        d = a[b + 2 - 32],\n        e = a[b + 3 - 32],\n        f = a[b + 4 - 32],\n        g = a[b + 5 - 32],\n        h = a[b + 6 - 32],\n        k = a[b + 7 - 32];\n      a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n      a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n      a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n      a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n      a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n      a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n      a[b + 3 + 96] = z(h, k, k);\n    }\n    function jf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 - 32],\n        g = a[b + 0 - 32],\n        h = a[b + 1 - 32],\n        k = a[b + 2 - 32],\n        l = a[b + 3 - 32];\n      a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n      a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n      a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n      a[b + 3 + 0] = (k + l + 1) >> 1;\n      a[b + 0 + 96] = z(e, d, c);\n      a[b + 0 + 64] = z(d, c, f);\n      a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n      a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n      a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n      a[b + 3 + 32] = z(h, k, l);\n    }\n    function lf(a, b) {\n      var c = a[b + 0 - 32],\n        d = a[b + 1 - 32],\n        e = a[b + 2 - 32],\n        f = a[b + 3 - 32],\n        g = a[b + 4 - 32],\n        h = a[b + 5 - 32],\n        k = a[b + 6 - 32],\n        l = a[b + 7 - 32];\n      a[b + 0 + 0] = (c + d + 1) >> 1;\n      a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n      a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n      a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n      a[b + 0 + 32] = z(c, d, e);\n      a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n      a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n      a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n      a[b + 3 + 64] = z(g, h, k);\n      a[b + 3 + 96] = z(h, k, l);\n    }\n    function nf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96];\n      a[b + 0 + 0] = (c + d + 1) >> 1;\n      a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n      a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n      a[b + 1 + 0] = z(c, d, e);\n      a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n      a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n      a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n        b + 2 + 96\n      ] = a[b + 3 + 96] = f;\n    }\n    function mf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96],\n        g = a[b - 1 - 32],\n        h = a[b + 0 - 32],\n        k = a[b + 1 - 32],\n        l = a[b + 2 - 32];\n      a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n      a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n      a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n      a[b + 0 + 96] = (f + e + 1) >> 1;\n      a[b + 3 + 0] = z(h, k, l);\n      a[b + 2 + 0] = z(g, h, k);\n      a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n      a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n      a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n      a[b + 1 + 96] = z(f, e, d);\n    }\n    function xf(a, b) {\n      var c;\n      for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n    }\n    function yf(a, b) {\n      var c;\n      for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n    }\n    function lb(a, b, c) {\n      var d;\n      for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n    }\n    function vf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n      lb(c >> 4, a, b);\n    }\n    function Af(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n      lb(c >> 3, a, b);\n    }\n    function zf(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n      lb(c >> 3, a, b);\n    }\n    function Bf(a, b) {\n      lb(128, a, b);\n    }\n    function ab(a, b, c) {\n      var d = a[b - c],\n        e = a[b + 0],\n        f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n        g = mb[112 + ((f + 4) >> 3)];\n      a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n      a[b + 0] = R[255 + e - g];\n    }\n    function jd(a, b, c, d) {\n      var e = a[b + 0],\n        f = a[b + c];\n      return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n    }\n    function kd(a, b, c, d) {\n      return (\n        4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n      );\n    }\n    function ld(a, b, c, d, e) {\n      var f = a[b - 3 * c],\n        g = a[b - 2 * c],\n        h = a[b - c],\n        k = a[b + 0],\n        l = a[b + c],\n        m = a[b + 2 * c],\n        n = a[b + 3 * c];\n      return 4 * U[255 + h - k] + U[255 + g - l] > d\n        ? 0\n        : U[255 + a[b - 4 * c] - f] <= e &&\n            U[255 + f - g] <= e &&\n            U[255 + g - h] <= e &&\n            U[255 + n - m] <= e &&\n            U[255 + m - l] <= e &&\n            U[255 + l - k] <= e;\n    }\n    function gd(a, b, c, d) {\n      var e = 2 * d + 1;\n      for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n    }\n    function hd(a, b, c, d) {\n      var e = 2 * d + 1;\n      for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n    }\n    function bf(a, b, c, d) {\n      var e;\n      for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n    }\n    function cf(a, b, c, d) {\n      var e;\n      for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n    }\n    function ea(a, b, c, d, e, f, g, h) {\n      for (f = 2 * f + 1; 0 < e--; ) {\n        if (ld(a, b, c, f, g))\n          if (jd(a, b, c, h)) ab(a, b, c);\n          else {\n            var k = a,\n              l = b,\n              m = c,\n              n = k[l - 2 * m],\n              r = k[l - m],\n              q = k[l + 0],\n              t = k[l + m],\n              v = k[l + 2 * m],\n              p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n              u = (27 * p + 63) >> 7,\n              w = (18 * p + 63) >> 7,\n              p = (9 * p + 63) >> 7;\n            k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n            k[l - 2 * m] = R[255 + n + w];\n            k[l - m] = R[255 + r + u];\n            k[l + 0] = R[255 + q - u];\n            k[l + m] = R[255 + t - w];\n            k[l + 2 * m] = R[255 + v - p];\n          }\n        b += d;\n      }\n    }\n    function Fa(a, b, c, d, e, f, g, h) {\n      for (f = 2 * f + 1; 0 < e--; ) {\n        if (ld(a, b, c, f, g))\n          if (jd(a, b, c, h)) ab(a, b, c);\n          else {\n            var k = a,\n              l = b,\n              m = c,\n              n = k[l - m],\n              r = k[l + 0],\n              q = k[l + m],\n              t = 3 * (r - n),\n              v = mb[112 + ((t + 4) >> 3)],\n              t = mb[112 + ((t + 3) >> 3)],\n              p = (v + 1) >> 1;\n            k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n            k[l - m] = R[255 + n + t];\n            k[l + 0] = R[255 + r - v];\n            k[l + m] = R[255 + q - p];\n          }\n        b += d;\n      }\n    }\n    function Ue(a, b, c, d, e, f) {\n      ea(a, b, c, 1, 16, d, e, f);\n    }\n    function Ve(a, b, c, d, e, f) {\n      ea(a, b, 1, c, 16, d, e, f);\n    }\n    function Ye(a, b, c, d, e, f) {\n      var g;\n      for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n    }\n    function Ze(a, b, c, d, e, f) {\n      var g;\n      for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n    }\n    function We(a, b, c, d, e, f, g, h) {\n      ea(a, b, e, 1, 8, f, g, h);\n      ea(c, d, e, 1, 8, f, g, h);\n    }\n    function Xe(a, b, c, d, e, f, g, h) {\n      ea(a, b, 1, e, 8, f, g, h);\n      ea(c, d, 1, e, 8, f, g, h);\n    }\n    function $e(a, b, c, d, e, f, g, h) {\n      Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n      Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n    }\n    function af(a, b, c, d, e, f, g, h) {\n      Fa(a, b + 4, 1, e, 8, f, g, h);\n      Fa(c, d + 4, 1, e, 8, f, g, h);\n    }\n    function Cf() {\n      this.ba = new Cb();\n      this.ec = [];\n      this.cc = [];\n      this.Mc = [];\n      this.Dc = this.Nc = this.dc = this.fc = 0;\n      this.Oa = new Ud();\n      this.memory = 0;\n      this.Ib = \"OutputFunc\";\n      this.Jb = \"OutputAlphaFunc\";\n      this.Nd = \"OutputRowFunc\";\n    }\n    function md() {\n      this.data = [];\n      this.offset = this.kd = this.ha = this.w = 0;\n      this.na = [];\n      this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n    }\n    function Df() {\n      this.nc = this.Ea = this.b = this.hc = 0;\n      this.K = [];\n      this.w = 0;\n    }\n    function Ef() {\n      this.ua = 0;\n      this.Wa = new ac();\n      this.vb = new ac();\n      this.md = this.xc = this.wc = 0;\n      this.vc = [];\n      this.Wb = 0;\n      this.Ya = new Ub();\n      this.yc = new O();\n    }\n    function je() {\n      this.xb = this.a = 0;\n      this.l = new Oa();\n      this.ca = new Cb();\n      this.V = [];\n      this.Ba = 0;\n      this.Ta = [];\n      this.Ua = 0;\n      this.m = new Ra();\n      this.Pb = 0;\n      this.wd = new Ra();\n      this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n      this.s = new Ef();\n      this.ab = 0;\n      this.gc = wa(4, Df);\n      this.Oc = 0;\n    }\n    function Ff() {\n      this.Lc = this.Z = this.$a = this.i = this.c = 0;\n      this.l = new Oa();\n      this.ic = 0;\n      this.ca = [];\n      this.tb = 0;\n      this.qd = null;\n      this.rd = 0;\n    }\n    function Rb(a, b, c, d, e, f, g) {\n      a = null == a ? 0 : a[b + 0];\n      for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n    }\n    function Gf(a, b, c, d, e, f, g) {\n      if (null == a) Rb(null, null, c, d, e, f, g);\n      else {\n        var h;\n        for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n      }\n    }\n    function Hf(a, b, c, d, e, f, g) {\n      if (null == a) Rb(null, null, c, d, e, f, g);\n      else {\n        var h = a[b + 0],\n          k = h,\n          l = h,\n          m;\n        for (m = 0; m < g; ++m)\n          (h = a[b + m]),\n            (k = l + h - k),\n            (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n            (k = h),\n            (e[f + m] = l);\n      }\n    }\n    function Le(a, b, c, d) {\n      var e = b.width,\n        f = b.o;\n      x(null != a && null != b);\n      if (0 > c || 0 >= d || c + d > f) return null;\n      if (!a.Cc) {\n        if (null == a.ga) {\n          a.ga = new Ff();\n          var g;\n          (g = null == a.ga) ||\n            ((g = b.width * b.o),\n            x(0 == a.Gb.length),\n            (a.Gb = V(g)),\n            (a.Uc = 0),\n            null == a.Gb\n              ? (g = 0)\n              : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n            (g = !g));\n          if (!g) {\n            g = a.ga;\n            var h = a.Fa,\n              k = a.P,\n              l = a.qc,\n              m = a.mb,\n              n = a.nb,\n              r = k + 1,\n              q = l - 1,\n              t = g.l;\n            x(null != h && null != m && null != b);\n            ia[0] = null;\n            ia[1] = Rb;\n            ia[2] = Gf;\n            ia[3] = Hf;\n            g.ca = m;\n            g.tb = n;\n            g.c = b.width;\n            g.i = b.height;\n            x(0 < g.c && 0 < g.i);\n            if (1 >= l) b = 0;\n            else if (\n              ((g.$a = (h[k + 0] >> 0) & 3),\n              (g.Z = (h[k + 0] >> 2) & 3),\n              (g.Lc = (h[k + 0] >> 4) & 3),\n              (k = (h[k + 0] >> 6) & 3),\n              0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n            )\n              b = 0;\n            else if (\n              ((t.put = kc),\n              (t.ac = gc),\n              (t.bc = lc),\n              (t.ma = g),\n              (t.width = b.width),\n              (t.height = b.height),\n              (t.Da = b.Da),\n              (t.v = b.v),\n              (t.va = b.va),\n              (t.j = b.j),\n              (t.o = b.o),\n              g.$a)\n            )\n              b: {\n                x(1 == g.$a), (b = Bc());\n                c: for (;;) {\n                  if (null == b) {\n                    b = 0;\n                    break b;\n                  }\n                  x(null != g);\n                  g.mc = b;\n                  b.c = g.c;\n                  b.i = g.i;\n                  b.l = g.l;\n                  b.l.ma = g;\n                  b.l.width = g.c;\n                  b.l.height = g.i;\n                  b.a = 0;\n                  cb(b.m, h, r, q);\n                  if (!rb(g.c, g.i, 1, b, null)) break c;\n                  1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n                    ? ((g.ic = 1),\n                      (h = b.c * b.i),\n                      (b.Ta = null),\n                      (b.Ua = 0),\n                      (b.V = V(h)),\n                      (b.Ba = 0),\n                      null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n                    : ((g.ic = 0), (b = Ec(b, g.c)));\n                  if (!b) break c;\n                  b = 1;\n                  break b;\n                }\n                g.mc = null;\n                b = 0;\n              }\n            else b = q >= g.c * g.i;\n            g = !b;\n          }\n          if (g) return null;\n          1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n        }\n        x(null != a.ga);\n        x(c + d <= f);\n        a: {\n          h = a.ga;\n          b = h.c;\n          f = h.l.o;\n          if (0 == h.$a) {\n            r = a.rc;\n            q = a.Vc;\n            t = a.Fa;\n            k = a.P + 1 + c * b;\n            l = a.mb;\n            m = a.nb + c * b;\n            x(k <= a.P + a.qc);\n            if (0 != h.Z)\n              for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n                ia[h.Z](r, q, t, k, l, m, b),\n                  (r = l),\n                  (q = m),\n                  (m += b),\n                  (k += b);\n            else\n              for (g = 0; g < d; ++g)\n                I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n            a.rc = r;\n            a.Vc = q;\n          } else {\n            x(null != h.mc);\n            b = c + d;\n            g = h.mc;\n            x(null != g);\n            x(b <= g.i);\n            if (g.C >= b) b = 1;\n            else if ((h.ic || Aa(), h.ic)) {\n              var h = g.V,\n                r = g.Ba,\n                q = g.c,\n                v = g.i,\n                t = 1,\n                k = g.$ / q,\n                l = g.$ % q,\n                m = g.m,\n                n = g.s,\n                p = g.$,\n                u = q * v,\n                w = q * b,\n                y = n.wc,\n                A = p < w ? ha(n, l, k) : null;\n              x(p <= u);\n              x(b <= v);\n              x(yc(n));\n              c: for (;;) {\n                for (; !m.h && p < w; ) {\n                  l & y || (A = ha(n, l, k));\n                  x(null != A);\n                  Sa(m);\n                  v = ua(A.G[0], A.H[0], m);\n                  if (256 > v)\n                    (h[r + p] = v),\n                      ++p,\n                      ++l,\n                      l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n                  else if (280 > v) {\n                    var v = ib(v - 256, m);\n                    var E = ua(A.G[4], A.H[4], m);\n                    Sa(m);\n                    E = ib(E, m);\n                    E = nc(q, E);\n                    if (p >= E && u - p >= v) {\n                      var B;\n                      for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n                    } else {\n                      t = 0;\n                      break c;\n                    }\n                    p += v;\n                    for (l += v; l >= q; )\n                      (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n                    p < w && l & y && (A = ha(n, l, k));\n                  } else {\n                    t = 0;\n                    break c;\n                  }\n                  x(m.h == db(m));\n                }\n                Ib(g, k > b ? b : k);\n                break c;\n              }\n              !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n              b = t;\n            } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n            if (!b) {\n              d = 0;\n              break a;\n            }\n          }\n          c + d >= f && (a.Cc = 1);\n          d = 1;\n        }\n        if (!d) return null;\n        if (\n          a.Cc &&\n          ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n        )\n          return alert(\"todo:WebPDequantizeLevels\"), null;\n      }\n      return a.nb + c * e;\n    }\n    function If(a, b, c, d, e, f) {\n      for (; 0 < e--; ) {\n        var g = a,\n          h = b + (c ? 1 : 0),\n          k = a,\n          l = b + (c ? 0 : 3),\n          m;\n        for (m = 0; m < d; ++m) {\n          var n = k[l + 4 * m];\n          255 != n &&\n            ((n *= 32897),\n            (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n            (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n            (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n        }\n        b += f;\n      }\n    }\n    function Jf(a, b, c, d, e) {\n      for (; 0 < d--; ) {\n        var f;\n        for (f = 0; f < c; ++f) {\n          var g = a[b + 2 * f + 0],\n            h = a[b + 2 * f + 1],\n            k = h & 15,\n            l = 4369 * k,\n            h = (((h & 240) | (h >> 4)) * l) >> 16;\n          a[b + 2 * f + 0] =\n            (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n            ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n          a[b + 2 * f + 1] = (h & 240) | k;\n        }\n        b += e;\n      }\n    }\n    function Kf(a, b, c, d, e, f, g, h) {\n      var k = 255,\n        l,\n        m;\n      for (m = 0; m < e; ++m) {\n        for (l = 0; l < d; ++l) {\n          var n = a[b + l];\n          f[g + 4 * l] = n;\n          k &= n;\n        }\n        b += c;\n        g += h;\n      }\n      return 255 != k;\n    }\n    function Lf(a, b, c, d, e) {\n      var f;\n      for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n    }\n    function Aa() {\n      za = If;\n      vc = Jf;\n      fc = Kf;\n      Fc = Lf;\n    }\n    function va(a, b, c) {\n      self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n        var d,\n          E = (y - 1) >> 1;\n        var B = h[k + 0] | (l[m + 0] << 16);\n        var C = n[r + 0] | (q[t + 0] << 16);\n        x(null != a);\n        var z = (3 * B + C + 131074) >> 2;\n        b(a[e + 0], z & 255, z >> 16, v, p);\n        null != f &&\n          ((z = (3 * C + B + 131074) >> 2),\n          b(f[g + 0], z & 255, z >> 16, u, w));\n        for (d = 1; d <= E; ++d) {\n          var D = h[k + d] | (l[m + d] << 16);\n          var G = n[r + d] | (q[t + d] << 16);\n          var F = B + D + C + G + 524296;\n          var H = (F + 2 * (D + C)) >> 3;\n          F = (F + 2 * (B + G)) >> 3;\n          z = (H + B) >> 1;\n          B = (F + D) >> 1;\n          b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n          b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n          null != f &&\n            ((z = (F + C) >> 1),\n            (B = (H + G) >> 1),\n            b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n            b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n          B = D;\n          C = G;\n        }\n        y & 1 ||\n          ((z = (3 * B + C + 131074) >> 2),\n          b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n          null != f &&\n            ((z = (3 * C + B + 131074) >> 2),\n            b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n      };\n    }\n    function ic() {\n      P[Ca] = Mf;\n      P[Ua] = nd;\n      P[tc] = Nf;\n      P[Va] = od;\n      P[ya] = pd;\n      P[Db] = qd;\n      P[wc] = Of;\n      P[zb] = nd;\n      P[Ab] = od;\n      P[Ja] = pd;\n      P[Bb] = qd;\n    }\n    function Sb(a) {\n      return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n    }\n    function bb(a, b) {\n      return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n    }\n    function nb(a, b, c) {\n      return Sb(\n        ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n      );\n    }\n    function Pa(a, b) {\n      return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n    }\n    function Ga(a, b, c, d, e) {\n      d[e + 0] = bb(a, c);\n      d[e + 1] = nb(a, b, c);\n      d[e + 2] = Pa(a, b);\n    }\n    function Tb(a, b, c, d, e) {\n      d[e + 0] = Pa(a, b);\n      d[e + 1] = nb(a, b, c);\n      d[e + 2] = bb(a, c);\n    }\n    function sd(a, b, c, d, e) {\n      var f = nb(a, b, c);\n      b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n      d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n      d[e + 1] = b;\n    }\n    function td(a, b, c, d, e) {\n      var f = (Pa(a, b) & 240) | 15;\n      d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n      d[e + 1] = f;\n    }\n    function ud(a, b, c, d, e) {\n      d[e + 0] = 255;\n      Ga(a, b, c, d, e + 1);\n    }\n    function vd(a, b, c, d, e) {\n      Tb(a, b, c, d, e);\n      d[e + 3] = 255;\n    }\n    function wd(a, b, c, d, e) {\n      Ga(a, b, c, d, e);\n      d[e + 3] = 255;\n    }\n    function ga(a, b) {\n      return 0 > a ? 0 : a > b ? b : a;\n    }\n    function la(a, b, c) {\n      self[a] = function(a, e, f, g, h, k, l, m, n) {\n        for (var d = m + (n & -2) * c; m != d; )\n          b(a[e + 0], f[g + 0], h[k + 0], l, m),\n            b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n            (e += 2),\n            ++g,\n            ++k,\n            (m += 2 * c);\n        n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n      };\n    }\n    function xd(a, b, c) {\n      return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n    }\n    function yd(a, b, c, d, e) {\n      switch (a >>> 30) {\n        case 3:\n          Za(b, c, d, e, 0);\n          break;\n        case 2:\n          fd(b, c, d, e);\n          break;\n        case 1:\n          pa(b, c, d, e);\n      }\n    }\n    function Oc(a, b) {\n      var c,\n        d,\n        e = b.M,\n        f = b.Nb,\n        g = a.oc,\n        h = a.pc + 40,\n        k = a.oc,\n        l = a.pc + 584,\n        m = a.oc,\n        n = a.pc + 600;\n      for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n      for (c = 0; 8 > c; ++c)\n        (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n      0 < e\n        ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n        : (M(g, h - 32 - 1, 127, 21),\n          M(k, l - 32 - 1, 127, 9),\n          M(m, n - 32 - 1, 127, 9));\n      for (d = 0; d < a.za; ++d) {\n        var r = b.ya[b.aa + d];\n        if (0 < d) {\n          for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n          for (c = -1; 8 > c; ++c)\n            I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n              I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n        }\n        var q = a.Gd,\n          t = a.Hd + d,\n          v = r.ad,\n          p = r.Hc;\n        0 < e &&\n          (I(g, h - 32, q[t].y, 0, 16),\n          I(k, l - 32, q[t].f, 0, 8),\n          I(m, n - 32, q[t].ea, 0, 8));\n        if (r.Za) {\n          var u = g;\n          var w = h - 32 + 16;\n          0 < e &&\n            (d >= a.za - 1\n              ? M(u, w, q[t].y[15], 4)\n              : I(u, w, q[t + 1].y, 0, 4));\n          for (c = 0; 4 > c; c++)\n            u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n          for (c = 0; 16 > c; ++c, p <<= 2)\n            (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n        } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n          for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n        c = r.Gc;\n        u = xd(d, e, r.Dd);\n        ka[u](k, l);\n        ka[u](m, n);\n        r = c >> 0;\n        p = v;\n        u = k;\n        w = l;\n        r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n        c >>= 8;\n        r = m;\n        p = n;\n        c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n        e < a.Ub - 1 &&\n          (I(q[t].y, 0, g, h + 480, 16),\n          I(q[t].f, 0, k, l + 224, 8),\n          I(q[t].ea, 0, m, n + 224, 8));\n        c = 8 * f * a.B;\n        q = a.sa;\n        t = a.ta + 16 * d + 16 * f * a.R;\n        v = a.qa;\n        r = a.ra + 8 * d + c;\n        p = a.Ha;\n        u = a.Ia + 8 * d + c;\n        for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n        for (c = 0; 8 > c; ++c)\n          I(v, r + c * a.B, k, l + 32 * c, 8),\n            I(p, u + c * a.B, m, n + 32 * c, 8);\n      }\n    }\n    function Ad(a, b, c, d, e, f, g, h, k) {\n      var l = [0],\n        m = [0],\n        n = 0,\n        r = null != k ? k.kd : 0,\n        q = null != k ? k : new md();\n      if (null == a || 12 > c) return 7;\n      q.data = a;\n      q.w = b;\n      q.ha = c;\n      b = [b];\n      c = [c];\n      q.gb = [q.gb];\n      a: {\n        var t = b;\n        var v = c;\n        var p = q.gb;\n        x(null != a);\n        x(null != v);\n        x(null != p);\n        p[0] = 0;\n        if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n          if (fa(a, t[0] + 8, \"WEBP\")) {\n            p = 3;\n            break a;\n          }\n          var u = Ha(a, t[0] + 4);\n          if (12 > u || 4294967286 < u) {\n            p = 3;\n            break a;\n          }\n          if (r && u > v[0] - 8) {\n            p = 7;\n            break a;\n          }\n          p[0] = u;\n          t[0] += 12;\n          v[0] -= 12;\n        }\n        p = 0;\n      }\n      if (0 != p) return p;\n      u = 0 < q.gb[0];\n      for (c = c[0]; ; ) {\n        t = [0];\n        n = [n];\n        a: {\n          var w = a;\n          v = b;\n          p = c;\n          var y = n,\n            A = l,\n            z = m,\n            B = t;\n          y[0] = 0;\n          if (8 > p[0]) p = 7;\n          else {\n            if (!fa(w, v[0], \"VP8X\")) {\n              if (10 != Ha(w, v[0] + 4)) {\n                p = 3;\n                break a;\n              }\n              if (18 > p[0]) {\n                p = 7;\n                break a;\n              }\n              var C = Ha(w, v[0] + 8);\n              var D = 1 + Yb(w, v[0] + 12);\n              w = 1 + Yb(w, v[0] + 15);\n              if (2147483648 <= D * w) {\n                p = 3;\n                break a;\n              }\n              null != B && (B[0] = C);\n              null != A && (A[0] = D);\n              null != z && (z[0] = w);\n              v[0] += 18;\n              p[0] -= 18;\n              y[0] = 1;\n            }\n            p = 0;\n          }\n        }\n        n = n[0];\n        t = t[0];\n        if (0 != p) return p;\n        v = !!(t & 2);\n        if (!u && n) return 3;\n        null != f && (f[0] = !!(t & 16));\n        null != g && (g[0] = v);\n        null != h && (h[0] = 0);\n        g = l[0];\n        t = m[0];\n        if (n && v && null == k) {\n          p = 0;\n          break;\n        }\n        if (4 > c) {\n          p = 7;\n          break;\n        }\n        if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n          c = [c];\n          q.na = [q.na];\n          q.P = [q.P];\n          q.Sa = [q.Sa];\n          a: {\n            C = a;\n            p = b;\n            u = c;\n            var y = q.gb,\n              A = q.na,\n              z = q.P,\n              B = q.Sa;\n            D = 22;\n            x(null != C);\n            x(null != u);\n            w = p[0];\n            var F = u[0];\n            x(null != A);\n            x(null != B);\n            A[0] = null;\n            z[0] = null;\n            for (B[0] = 0; ; ) {\n              p[0] = w;\n              u[0] = F;\n              if (8 > F) {\n                p = 7;\n                break a;\n              }\n              var G = Ha(C, w + 4);\n              if (4294967286 < G) {\n                p = 3;\n                break a;\n              }\n              var H = (8 + G + 1) & -2;\n              D += H;\n              if (0 < y && D > y) {\n                p = 3;\n                break a;\n              }\n              if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n                p = 0;\n                break a;\n              }\n              if (F[0] < H) {\n                p = 7;\n                break a;\n              }\n              fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n              w += H;\n              F -= H;\n            }\n          }\n          c = c[0];\n          q.na = q.na[0];\n          q.P = q.P[0];\n          q.Sa = q.Sa[0];\n          if (0 != p) break;\n        }\n        c = [c];\n        q.Ja = [q.Ja];\n        q.xa = [q.xa];\n        a: if (\n          ((y = a),\n          (p = b),\n          (u = c),\n          (A = q.gb[0]),\n          (z = q.Ja),\n          (B = q.xa),\n          (C = p[0]),\n          (w = !fa(y, C, \"VP8 \")),\n          (D = !fa(y, C, \"VP8L\")),\n          x(null != y),\n          x(null != u),\n          x(null != z),\n          x(null != B),\n          8 > u[0])\n        )\n          p = 7;\n        else {\n          if (w || D) {\n            y = Ha(y, C + 4);\n            if (12 <= A && y > A - 12) {\n              p = 3;\n              break a;\n            }\n            if (r && y > u[0] - 8) {\n              p = 7;\n              break a;\n            }\n            z[0] = y;\n            p[0] += 8;\n            u[0] -= 8;\n            B[0] = D;\n          } else\n            (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n              (z[0] = u[0]);\n          p = 0;\n        }\n        c = c[0];\n        q.Ja = q.Ja[0];\n        q.xa = q.xa[0];\n        b = b[0];\n        if (0 != p) break;\n        if (4294967286 < q.Ja) return 3;\n        null == h || v || (h[0] = q.xa ? 2 : 1);\n        g = [g];\n        t = [t];\n        if (q.xa) {\n          if (5 > c) {\n            p = 7;\n            break;\n          }\n          h = g;\n          r = t;\n          v = f;\n          null == a || 5 > c\n            ? (a = 0)\n            : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n            ? ((u = [0]),\n              (y = [0]),\n              (A = [0]),\n              (z = new Ra()),\n              cb(z, a, b, c),\n              mc(z, u, y, A)\n                ? (null != h && (h[0] = u[0]),\n                  null != r && (r[0] = y[0]),\n                  null != v && (v[0] = A[0]),\n                  (a = 1))\n                : (a = 0))\n            : (a = 0);\n        } else {\n          if (10 > c) {\n            p = 7;\n            break;\n          }\n          h = t;\n          null == a || 10 > c || !Jc(a, b + 3, c - 3)\n            ? (a = 0)\n            : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n              (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n              (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n              r & 1 ||\n              3 < ((r >> 1) & 7) ||\n              !((r >> 4) & 1) ||\n              r >> 5 >= q.Ja ||\n              !v ||\n              !a\n                ? (a = 0)\n                : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n        }\n        if (!a) return 3;\n        g = g[0];\n        t = t[0];\n        if (n && (l[0] != g || m[0] != t)) return 3;\n        null != k &&\n          ((k[0] = q),\n          (k.offset = b - k.w),\n          x(4294967286 > b - k.w),\n          x(k.offset == k.ha - c));\n        break;\n      }\n      return 0 == p || (7 == p && n && null == k)\n        ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n          null != d && (d[0] = g),\n          null != e && (e[0] = t),\n          0)\n        : p;\n    }\n    function hc(a, b, c) {\n      var d = b.width,\n        e = b.height,\n        f = 0,\n        g = 0,\n        h = d,\n        k = e;\n      b.Da = null != a && 0 < a.Da;\n      if (\n        b.Da &&\n        ((h = a.cd),\n        (k = a.bd),\n        (f = a.v),\n        (g = a.j),\n        11 > c || ((f &= -2), (g &= -2)),\n        0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n      )\n        return 0;\n      b.v = f;\n      b.j = g;\n      b.va = f + h;\n      b.o = g + k;\n      b.U = h;\n      b.T = k;\n      b.da = null != a && 0 < a.da;\n      if (b.da) {\n        c = [a.ib];\n        f = [a.hb];\n        if (!bc(h, k, c, f)) return 0;\n        b.ib = c[0];\n        b.hb = f[0];\n      }\n      b.ob = null != a && a.ob;\n      b.Kb = null == a || !a.Sd;\n      b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n      return 1;\n    }\n    function Bd(a) {\n      if (null == a) return 2;\n      if (11 > a.S) {\n        var b = a.f.RGBA;\n        b.fb += (a.height - 1) * b.A;\n        b.A = -b.A;\n      } else\n        (b = a.f.kb),\n          (a = a.height),\n          (b.O += (a - 1) * b.fa),\n          (b.fa = -b.fa),\n          (b.N += ((a - 1) >> 1) * b.Ab),\n          (b.Ab = -b.Ab),\n          (b.W += ((a - 1) >> 1) * b.Db),\n          (b.Db = -b.Db),\n          null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n      return 0;\n    }\n    function Cd(a, b, c, d) {\n      if (null == d || 0 >= a || 0 >= b) return 2;\n      if (null != c) {\n        if (c.Da) {\n          var e = c.cd,\n            f = c.bd,\n            g = c.v & -2,\n            h = c.j & -2;\n          if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n            return 2;\n          a = e;\n          b = f;\n        }\n        if (c.da) {\n          e = [c.ib];\n          f = [c.hb];\n          if (!bc(a, b, e, f)) return 2;\n          a = e[0];\n          b = f[0];\n        }\n      }\n      d.width = a;\n      d.height = b;\n      a: {\n        var k = d.width;\n        var l = d.height;\n        a = d.S;\n        if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n        else {\n          if (0 >= d.Rd && null == d.sd) {\n            var g = (f = e = b = 0),\n              h = k * Dd[a],\n              m = h * l;\n            11 > a ||\n              ((b = (k + 1) / 2),\n              (f = ((l + 1) / 2) * b),\n              12 == a && ((e = k), (g = e * l)));\n            l = V(m + 2 * f + g);\n            if (null == l) {\n              a = 1;\n              break a;\n            }\n            d.sd = l;\n            11 > a\n              ? ((k = d.f.RGBA),\n                (k.eb = l),\n                (k.fb = 0),\n                (k.A = h),\n                (k.size = m))\n              : ((k = d.f.kb),\n                (k.y = l),\n                (k.O = 0),\n                (k.fa = h),\n                (k.Fd = m),\n                (k.f = l),\n                (k.N = 0 + m),\n                (k.Ab = b),\n                (k.Cd = f),\n                (k.ea = l),\n                (k.W = 0 + m + f),\n                (k.Db = b),\n                (k.Ed = f),\n                12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n                (k.Tc = g),\n                (k.lb = e));\n          }\n          b = 1;\n          e = d.S;\n          f = d.width;\n          g = d.height;\n          if (e >= Ca && 13 > e)\n            if (11 > e)\n              (a = d.f.RGBA),\n                (h = Math.abs(a.A)),\n                (b &= h * (g - 1) + f <= a.size),\n                (b &= h >= f * Dd[e]),\n                (b &= null != a.eb);\n            else {\n              a = d.f.kb;\n              h = (f + 1) / 2;\n              m = (g + 1) / 2;\n              k = Math.abs(a.fa);\n              var l = Math.abs(a.Ab),\n                n = Math.abs(a.Db),\n                r = Math.abs(a.lb),\n                q = r * (g - 1) + f;\n              b &= k * (g - 1) + f <= a.Fd;\n              b &= l * (m - 1) + h <= a.Cd;\n              b &= n * (m - 1) + h <= a.Ed;\n              b = b & (k >= f) & (l >= h) & (n >= h);\n              b &= null != a.y;\n              b &= null != a.f;\n              b &= null != a.ea;\n              12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n            }\n          else b = 0;\n          a = b ? 0 : 2;\n        }\n      }\n      if (0 != a) return a;\n      null != c && c.fd && (a = Bd(d));\n      return a;\n    }\n    var xb = 64,\n      Hd = [\n        0,\n        1,\n        3,\n        7,\n        15,\n        31,\n        63,\n        127,\n        255,\n        511,\n        1023,\n        2047,\n        4095,\n        8191,\n        16383,\n        32767,\n        65535,\n        131071,\n        262143,\n        524287,\n        1048575,\n        2097151,\n        4194303,\n        8388607,\n        16777215\n      ],\n      Gd = 24,\n      ob = 32,\n      Xb = 8,\n      Id = [\n        0,\n        0,\n        1,\n        1,\n        2,\n        2,\n        2,\n        2,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7\n      ];\n    X(\"Predictor0\", \"PredictorAdd0\");\n    self.Predictor0 = function() {\n      return 4278190080;\n    };\n    self.Predictor1 = function(a) {\n      return a;\n    };\n    self.Predictor2 = function(a, b, c) {\n      return b[c + 0];\n    };\n    self.Predictor3 = function(a, b, c) {\n      return b[c + 1];\n    };\n    self.Predictor4 = function(a, b, c) {\n      return b[c - 1];\n    };\n    self.Predictor5 = function(a, b, c) {\n      return aa(aa(a, b[c + 1]), b[c + 0]);\n    };\n    self.Predictor6 = function(a, b, c) {\n      return aa(a, b[c - 1]);\n    };\n    self.Predictor7 = function(a, b, c) {\n      return aa(a, b[c + 0]);\n    };\n    self.Predictor8 = function(a, b, c) {\n      return aa(b[c - 1], b[c + 0]);\n    };\n    self.Predictor9 = function(a, b, c) {\n      return aa(b[c + 0], b[c + 1]);\n    };\n    self.Predictor10 = function(a, b, c) {\n      return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n    };\n    self.Predictor11 = function(a, b, c) {\n      var d = b[c + 0];\n      b = b[c - 1];\n      return 0 >=\n        Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n          Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n          Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n          Ia(d & 255, a & 255, b & 255)\n        ? d\n        : a;\n    };\n    self.Predictor12 = function(a, b, c) {\n      var d = b[c + 0];\n      b = b[c - 1];\n      return (\n        ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n          (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n            16) |\n          (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n          sa((a & 255) + (d & 255) - (b & 255))) >>>\n        0\n      );\n    };\n    self.Predictor13 = function(a, b, c) {\n      var d = b[c - 1];\n      a = aa(a, b[c + 0]);\n      return (\n        ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n          (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n          (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n          eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n        0\n      );\n    };\n    var ee = self.PredictorAdd0;\n    self.PredictorAdd1 = cc;\n    X(\"Predictor2\", \"PredictorAdd2\");\n    X(\"Predictor3\", \"PredictorAdd3\");\n    X(\"Predictor4\", \"PredictorAdd4\");\n    X(\"Predictor5\", \"PredictorAdd5\");\n    X(\"Predictor6\", \"PredictorAdd6\");\n    X(\"Predictor7\", \"PredictorAdd7\");\n    X(\"Predictor8\", \"PredictorAdd8\");\n    X(\"Predictor9\", \"PredictorAdd9\");\n    X(\"Predictor10\", \"PredictorAdd10\");\n    X(\"Predictor11\", \"PredictorAdd11\");\n    X(\"Predictor12\", \"PredictorAdd12\");\n    X(\"Predictor13\", \"PredictorAdd13\");\n    var fe = self.PredictorAdd2;\n    ec(\n      \"ColorIndexInverseTransform\",\n      \"MapARGB\",\n      \"32b\",\n      function(a) {\n        return (a >> 8) & 255;\n      },\n      function(a) {\n        return a;\n      }\n    );\n    ec(\n      \"VP8LColorIndexInverseTransformAlpha\",\n      \"MapAlpha\",\n      \"8b\",\n      function(a) {\n        return a;\n      },\n      function(a) {\n        return (a >> 8) & 255;\n      }\n    );\n    var rc = self.ColorIndexInverseTransform,\n      ke = self.MapARGB,\n      he = self.VP8LColorIndexInverseTransformAlpha,\n      le = self.MapAlpha,\n      pc,\n      qc = (self.VP8LPredictorsAdd = []);\n    qc.length = 16;\n    (self.VP8LPredictors = []).length = 16;\n    (self.VP8LPredictorsAdd_C = []).length = 16;\n    (self.VP8LPredictors_C = []).length = 16;\n    var Fb,\n      sc,\n      Gb,\n      Hb,\n      xc,\n      uc,\n      bd = V(511),\n      cd = V(2041),\n      dd = V(225),\n      ed = V(767),\n      ad = 0,\n      Qb = cd,\n      mb = dd,\n      R = ed,\n      U = bd,\n      Ca = 0,\n      Ua = 1,\n      tc = 2,\n      Va = 3,\n      ya = 4,\n      Db = 5,\n      wc = 6,\n      zb = 7,\n      Ab = 8,\n      Ja = 9,\n      Bb = 10,\n      pe = [2, 3, 7],\n      oe = [3, 3, 11],\n      Dc = [280, 256, 256, 256, 40],\n      qe = [0, 1, 1, 1, 0],\n      ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n      de = [\n        24,\n        7,\n        23,\n        25,\n        40,\n        6,\n        39,\n        41,\n        22,\n        26,\n        38,\n        42,\n        56,\n        5,\n        55,\n        57,\n        21,\n        27,\n        54,\n        58,\n        37,\n        43,\n        72,\n        4,\n        71,\n        73,\n        20,\n        28,\n        53,\n        59,\n        70,\n        74,\n        36,\n        44,\n        88,\n        69,\n        75,\n        52,\n        60,\n        3,\n        87,\n        89,\n        19,\n        29,\n        86,\n        90,\n        35,\n        45,\n        68,\n        76,\n        85,\n        91,\n        51,\n        61,\n        104,\n        2,\n        103,\n        105,\n        18,\n        30,\n        102,\n        106,\n        34,\n        46,\n        84,\n        92,\n        67,\n        77,\n        101,\n        107,\n        50,\n        62,\n        120,\n        1,\n        119,\n        121,\n        83,\n        93,\n        17,\n        31,\n        100,\n        108,\n        66,\n        78,\n        118,\n        122,\n        33,\n        47,\n        117,\n        123,\n        49,\n        63,\n        99,\n        109,\n        82,\n        94,\n        0,\n        116,\n        124,\n        65,\n        79,\n        16,\n        32,\n        98,\n        110,\n        48,\n        115,\n        125,\n        81,\n        95,\n        64,\n        114,\n        126,\n        97,\n        111,\n        80,\n        113,\n        127,\n        96,\n        112\n      ],\n      me = [\n        2954,\n        2956,\n        2958,\n        2962,\n        2970,\n        2986,\n        3018,\n        3082,\n        3212,\n        3468,\n        3980,\n        5004\n      ],\n      ie = 8,\n      Lb = [\n        4,\n        5,\n        6,\n        7,\n        8,\n        9,\n        10,\n        10,\n        11,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        17,\n        18,\n        19,\n        20,\n        20,\n        21,\n        21,\n        22,\n        22,\n        23,\n        23,\n        24,\n        25,\n        25,\n        26,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        35,\n        36,\n        37,\n        37,\n        38,\n        39,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        46,\n        47,\n        48,\n        49,\n        50,\n        51,\n        52,\n        53,\n        54,\n        55,\n        56,\n        57,\n        58,\n        59,\n        60,\n        61,\n        62,\n        63,\n        64,\n        65,\n        66,\n        67,\n        68,\n        69,\n        70,\n        71,\n        72,\n        73,\n        74,\n        75,\n        76,\n        76,\n        77,\n        78,\n        79,\n        80,\n        81,\n        82,\n        83,\n        84,\n        85,\n        86,\n        87,\n        88,\n        89,\n        91,\n        93,\n        95,\n        96,\n        98,\n        100,\n        101,\n        102,\n        104,\n        106,\n        108,\n        110,\n        112,\n        114,\n        116,\n        118,\n        122,\n        124,\n        126,\n        128,\n        130,\n        132,\n        134,\n        136,\n        138,\n        140,\n        143,\n        145,\n        148,\n        151,\n        154,\n        157\n      ],\n      Mb = [\n        4,\n        5,\n        6,\n        7,\n        8,\n        9,\n        10,\n        11,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        18,\n        19,\n        20,\n        21,\n        22,\n        23,\n        24,\n        25,\n        26,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        35,\n        36,\n        37,\n        38,\n        39,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        47,\n        48,\n        49,\n        50,\n        51,\n        52,\n        53,\n        54,\n        55,\n        56,\n        57,\n        58,\n        60,\n        62,\n        64,\n        66,\n        68,\n        70,\n        72,\n        74,\n        76,\n        78,\n        80,\n        82,\n        84,\n        86,\n        88,\n        90,\n        92,\n        94,\n        96,\n        98,\n        100,\n        102,\n        104,\n        106,\n        108,\n        110,\n        112,\n        114,\n        116,\n        119,\n        122,\n        125,\n        128,\n        131,\n        134,\n        137,\n        140,\n        143,\n        146,\n        149,\n        152,\n        155,\n        158,\n        161,\n        164,\n        167,\n        170,\n        173,\n        177,\n        181,\n        185,\n        189,\n        193,\n        197,\n        201,\n        205,\n        209,\n        213,\n        217,\n        221,\n        225,\n        229,\n        234,\n        239,\n        245,\n        249,\n        254,\n        259,\n        264,\n        269,\n        274,\n        279,\n        284\n      ],\n      oa = null,\n      He = [\n        [173, 148, 140, 0],\n        [176, 155, 140, 135, 0],\n        [180, 157, 141, 134, 130, 0],\n        [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n      ],\n      Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n      Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n      Fe = [\n        [\n          [\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n            [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n            [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n            [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n            [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n          ],\n          [\n            [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n            [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n            [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n            [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n            [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n            [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n            [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n            [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n            [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n            [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n            [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n          ],\n          [\n            [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n            [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n            [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n          ],\n          [\n            [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n            [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n            [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n          ],\n          [\n            [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n            [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n            [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n            [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n            [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n          ],\n          [\n            [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n            [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n            [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n          ],\n          [\n            [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n            [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n            [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n          ],\n          [\n            [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n            [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n            [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n            [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n            [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n          ],\n          [\n            [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n            [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n            [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n            [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n            [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n          ],\n          [\n            [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n            [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n            [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n            [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n            [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n            [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n            [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n            [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n            [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n          ],\n          [\n            [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n            [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n            [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n          ],\n          [\n            [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n            [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n            [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n          ],\n          [\n            [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n            [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n            [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n          ],\n          [\n            [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n            [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n            [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n          ],\n          [\n            [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n            [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n            [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n            [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n            [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n          ],\n          [\n            [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ]\n      ],\n      Ke = [\n        [\n          [231, 120, 48, 89, 115, 113, 120, 152, 112],\n          [152, 179, 64, 126, 170, 118, 46, 70, 95],\n          [175, 69, 143, 80, 85, 82, 72, 155, 103],\n          [56, 58, 10, 171, 218, 189, 17, 13, 152],\n          [114, 26, 17, 163, 44, 195, 21, 10, 173],\n          [121, 24, 80, 195, 26, 62, 44, 64, 85],\n          [144, 71, 10, 38, 171, 213, 144, 34, 26],\n          [170, 46, 55, 19, 136, 160, 33, 206, 71],\n          [63, 20, 8, 114, 114, 208, 12, 9, 226],\n          [81, 40, 11, 96, 182, 84, 29, 16, 36]\n        ],\n        [\n          [134, 183, 89, 137, 98, 101, 106, 165, 148],\n          [72, 187, 100, 130, 157, 111, 32, 75, 80],\n          [66, 102, 167, 99, 74, 62, 40, 234, 128],\n          [41, 53, 9, 178, 241, 141, 26, 8, 107],\n          [74, 43, 26, 146, 73, 166, 49, 23, 157],\n          [65, 38, 105, 160, 51, 52, 31, 115, 128],\n          [104, 79, 12, 27, 217, 255, 87, 17, 7],\n          [87, 68, 71, 44, 114, 51, 15, 186, 23],\n          [47, 41, 14, 110, 182, 183, 21, 17, 194],\n          [66, 45, 25, 102, 197, 189, 23, 18, 22]\n        ],\n        [\n          [88, 88, 147, 150, 42, 46, 45, 196, 205],\n          [43, 97, 183, 117, 85, 38, 35, 179, 61],\n          [39, 53, 200, 87, 26, 21, 43, 232, 171],\n          [56, 34, 51, 104, 114, 102, 29, 93, 77],\n          [39, 28, 85, 171, 58, 165, 90, 98, 64],\n          [34, 22, 116, 206, 23, 34, 43, 166, 73],\n          [107, 54, 32, 26, 51, 1, 81, 43, 31],\n          [68, 25, 106, 22, 64, 171, 36, 225, 114],\n          [34, 19, 21, 102, 132, 188, 16, 76, 124],\n          [62, 18, 78, 95, 85, 57, 50, 48, 51]\n        ],\n        [\n          [193, 101, 35, 159, 215, 111, 89, 46, 111],\n          [60, 148, 31, 172, 219, 228, 21, 18, 111],\n          [112, 113, 77, 85, 179, 255, 38, 120, 114],\n          [40, 42, 1, 196, 245, 209, 10, 25, 109],\n          [88, 43, 29, 140, 166, 213, 37, 43, 154],\n          [61, 63, 30, 155, 67, 45, 68, 1, 209],\n          [100, 80, 8, 43, 154, 1, 51, 26, 71],\n          [142, 78, 78, 16, 255, 128, 34, 197, 171],\n          [41, 40, 5, 102, 211, 183, 4, 1, 221],\n          [51, 50, 17, 168, 209, 192, 23, 25, 82]\n        ],\n        [\n          [138, 31, 36, 171, 27, 166, 38, 44, 229],\n          [67, 87, 58, 169, 82, 115, 26, 59, 179],\n          [63, 59, 90, 180, 59, 166, 93, 73, 154],\n          [40, 40, 21, 116, 143, 209, 34, 39, 175],\n          [47, 15, 16, 183, 34, 223, 49, 45, 183],\n          [46, 17, 33, 183, 6, 98, 15, 32, 183],\n          [57, 46, 22, 24, 128, 1, 54, 17, 37],\n          [65, 32, 73, 115, 28, 128, 23, 128, 205],\n          [40, 3, 9, 115, 51, 192, 18, 6, 223],\n          [87, 37, 9, 115, 59, 77, 64, 21, 47]\n        ],\n        [\n          [104, 55, 44, 218, 9, 54, 53, 130, 226],\n          [64, 90, 70, 205, 40, 41, 23, 26, 57],\n          [54, 57, 112, 184, 5, 41, 38, 166, 213],\n          [30, 34, 26, 133, 152, 116, 10, 32, 134],\n          [39, 19, 53, 221, 26, 114, 32, 73, 255],\n          [31, 9, 65, 234, 2, 15, 1, 118, 73],\n          [75, 32, 12, 51, 192, 255, 160, 43, 51],\n          [88, 31, 35, 67, 102, 85, 55, 186, 85],\n          [56, 21, 23, 111, 59, 205, 45, 37, 192],\n          [55, 38, 70, 124, 73, 102, 1, 34, 98]\n        ],\n        [\n          [125, 98, 42, 88, 104, 85, 117, 175, 82],\n          [95, 84, 53, 89, 128, 100, 113, 101, 45],\n          [75, 79, 123, 47, 51, 128, 81, 171, 1],\n          [57, 17, 5, 71, 102, 57, 53, 41, 49],\n          [38, 33, 13, 121, 57, 73, 26, 1, 85],\n          [41, 10, 67, 138, 77, 110, 90, 47, 114],\n          [115, 21, 2, 10, 102, 255, 166, 23, 6],\n          [101, 29, 16, 10, 85, 128, 101, 196, 26],\n          [57, 18, 10, 102, 102, 213, 34, 20, 43],\n          [117, 20, 15, 36, 163, 128, 68, 1, 26]\n        ],\n        [\n          [102, 61, 71, 37, 34, 53, 31, 243, 192],\n          [69, 60, 71, 38, 73, 119, 28, 222, 37],\n          [68, 45, 128, 34, 1, 47, 11, 245, 171],\n          [62, 17, 19, 70, 146, 85, 55, 62, 70],\n          [37, 43, 37, 154, 100, 163, 85, 160, 1],\n          [63, 9, 92, 136, 28, 64, 32, 201, 85],\n          [75, 15, 9, 9, 64, 255, 184, 119, 16],\n          [86, 6, 28, 5, 64, 255, 25, 248, 1],\n          [56, 8, 17, 132, 137, 255, 55, 116, 128],\n          [58, 15, 20, 82, 135, 57, 26, 121, 40]\n        ],\n        [\n          [164, 50, 31, 137, 154, 133, 25, 35, 218],\n          [51, 103, 44, 131, 131, 123, 31, 6, 158],\n          [86, 40, 64, 135, 148, 224, 45, 183, 128],\n          [22, 26, 17, 131, 240, 154, 14, 1, 209],\n          [45, 16, 21, 91, 64, 222, 7, 1, 197],\n          [56, 21, 39, 155, 60, 138, 23, 102, 213],\n          [83, 12, 13, 54, 192, 255, 68, 47, 28],\n          [85, 26, 85, 85, 128, 128, 32, 146, 171],\n          [18, 11, 7, 63, 144, 171, 4, 4, 246],\n          [35, 27, 10, 146, 174, 171, 12, 26, 128]\n        ],\n        [\n          [190, 80, 35, 99, 180, 80, 126, 54, 45],\n          [85, 126, 47, 87, 176, 51, 41, 20, 32],\n          [101, 75, 128, 139, 118, 146, 116, 128, 85],\n          [56, 41, 15, 176, 236, 85, 37, 9, 62],\n          [71, 30, 17, 119, 118, 255, 17, 18, 138],\n          [101, 38, 60, 138, 55, 70, 43, 26, 142],\n          [146, 36, 19, 30, 171, 255, 97, 27, 20],\n          [138, 45, 61, 62, 219, 1, 81, 188, 64],\n          [32, 41, 20, 117, 151, 142, 20, 21, 163],\n          [112, 19, 12, 61, 195, 128, 48, 4, 24]\n        ]\n      ],\n      Ee = [\n        [\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n            [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n            [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n          ],\n          [\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n            [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n            [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n            [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ]\n      ],\n      Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n      Nc,\n      Y = [],\n      W = [],\n      ka = [],\n      Za,\n      fd,\n      Nb,\n      pa,\n      Ob,\n      Xc,\n      Tc,\n      Yc,\n      Uc,\n      Zc,\n      Vc,\n      $c,\n      Wc,\n      Rc,\n      Pc,\n      Sc,\n      Qc,\n      re = 1,\n      Cc = 2,\n      ia = [],\n      za,\n      vc,\n      fc,\n      Fc,\n      P = [];\n    va(\"UpsampleRgbLinePair\", Ga, 3);\n    va(\"UpsampleBgrLinePair\", Tb, 3);\n    va(\"UpsampleRgbaLinePair\", wd, 4);\n    va(\"UpsampleBgraLinePair\", vd, 4);\n    va(\"UpsampleArgbLinePair\", ud, 4);\n    va(\"UpsampleRgba4444LinePair\", td, 2);\n    va(\"UpsampleRgb565LinePair\", sd, 2);\n    var Mf = self.UpsampleRgbLinePair,\n      Nf = self.UpsampleBgrLinePair,\n      nd = self.UpsampleRgbaLinePair,\n      od = self.UpsampleBgraLinePair,\n      pd = self.UpsampleArgbLinePair,\n      qd = self.UpsampleRgba4444LinePair,\n      Of = self.UpsampleRgb565LinePair,\n      Wa = 16,\n      Ba = 1 << (Wa - 1),\n      ta = -227,\n      Eb = 482,\n      rd = 6,\n      Pf = (256 << rd) - 1,\n      jc = 0,\n      Yd = V(256),\n      ae = V(256),\n      $d = V(256),\n      Zd = V(256),\n      be = V(Eb - ta),\n      ce = V(Eb - ta);\n    la(\"YuvToRgbRow\", Ga, 3);\n    la(\"YuvToBgrRow\", Tb, 3);\n    la(\"YuvToRgbaRow\", wd, 4);\n    la(\"YuvToBgraRow\", vd, 4);\n    la(\"YuvToArgbRow\", ud, 4);\n    la(\"YuvToRgba4444Row\", td, 2);\n    la(\"YuvToRgb565Row\", sd, 2);\n    var zd = [\n        0,\n        4,\n        8,\n        12,\n        128,\n        132,\n        136,\n        140,\n        256,\n        260,\n        264,\n        268,\n        384,\n        388,\n        392,\n        396\n      ],\n      Ya = [0, 2, 8],\n      Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n      Ne = 1;\n    this.WebPDecodeRGBA = function(a, b, c, d, e) {\n      var f = Ua;\n      var g = new Cf(),\n        h = new Cb();\n      g.ba = h;\n      h.S = f;\n      h.width = [h.width];\n      h.height = [h.height];\n      var k = h.width;\n      var l = h.height,\n        m = new Td();\n      if (null == m || null == a) var n = 2;\n      else\n        x(null != m),\n          (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n      0 != n\n        ? (k = 0)\n        : (null != k && (k[0] = m.width[0]),\n          null != l && (l[0] = m.height[0]),\n          (k = 1));\n      if (k) {\n        h.width = h.width[0];\n        h.height = h.height[0];\n        null != d && (d[0] = h.width);\n        null != e && (e[0] = h.height);\n        b: {\n          d = new Oa();\n          e = new md();\n          e.data = a;\n          e.w = b;\n          e.ha = c;\n          e.kd = 1;\n          b = [0];\n          x(null != e);\n          a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n          (0 == a || 7 == a) && b[0] && (a = 4);\n          b = a;\n          if (0 == b) {\n            x(null != g);\n            d.data = e.data;\n            d.w = e.w + e.offset;\n            d.ha = e.ha - e.offset;\n            d.put = kc;\n            d.ac = gc;\n            d.bc = lc;\n            d.ma = g;\n            if (e.xa) {\n              a = Bc();\n              if (null == a) {\n                g = 1;\n                break b;\n              }\n              if (te(a, d)) {\n                b = Cd(d.width, d.height, g.Oa, g.ba);\n                if ((d = 0 == b)) {\n                  c: {\n                    d = a;\n                    d: for (;;) {\n                      if (null == d) {\n                        d = 0;\n                        break c;\n                      }\n                      x(null != d.s.yc);\n                      x(null != d.s.Ya);\n                      x(0 < d.s.Wb);\n                      c = d.l;\n                      x(null != c);\n                      e = c.ma;\n                      x(null != e);\n                      if (0 != d.xb) {\n                        d.ca = e.ba;\n                        d.tb = e.tb;\n                        x(null != d.ca);\n                        if (!hc(e.Oa, c, Va)) {\n                          d.a = 2;\n                          break d;\n                        }\n                        if (!Ec(d, c.width)) break d;\n                        if (c.da) break d;\n                        (c.da || hb(d.ca.S)) && Aa();\n                        11 > d.ca.S ||\n                          (alert(\"todo:WebPInitConvertARGBToYUV\"),\n                          null != d.ca.f.kb.F && Aa());\n                        if (\n                          d.Pb &&\n                          0 < d.s.ua &&\n                          null == d.s.vb.X &&\n                          !Zb(d.s.vb, d.s.Wa.Xa)\n                        ) {\n                          d.a = 1;\n                          break d;\n                        }\n                        d.xb = 0;\n                      }\n                      if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n                      e.Dc = d.Ma;\n                      d = 1;\n                      break c;\n                    }\n                    x(0 != d.a);\n                    d = 0;\n                  }\n                  d = !d;\n                }\n                d && (b = a.a);\n              } else b = a.a;\n            } else {\n              a = new Ce();\n              if (null == a) {\n                g = 1;\n                break b;\n              }\n              a.Fa = e.na;\n              a.P = e.P;\n              a.qc = e.Sa;\n              if (Kc(a, d)) {\n                if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n                  a.Aa = 0;\n                  c = g.Oa;\n                  e = a;\n                  x(null != e);\n                  if (null != c) {\n                    k = c.Md;\n                    k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n                    if (0 < k) {\n                      for (l = m = 0; 4 > l; ++l)\n                        (n = e.pb[l]),\n                          12 > n.lc &&\n                            (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n                          (m |= n.ia);\n                      m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n                    }\n                    e.Ga = c.Id;\n                    100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n                  }\n                  Me(a, d) || (b = a.a);\n                }\n              } else b = a.a;\n            }\n            0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n          }\n          g = b;\n        }\n        f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n      } else f = null;\n      return f;\n    };\n    var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n  };\n  new _WebPDecoder();\n\n  /** @license\n   * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n  function memcmp(data, data_off, str, size) {\n    for (var i = 0; i < size; i++)\n      if (data[data_off + i] != str.charCodeAt(i)) return true;\n    return false;\n  }\n\n  function GetTag(data, data_off) {\n    var str = \"\";\n    for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n    return str;\n  }\n\n  function GetLE16(data, data_off) {\n    return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n  }\n\n  function GetLE24(data, data_off) {\n    return (\n      ((data[data_off + 0] << 0) |\n        (data[data_off + 1] << 8) |\n        (data[data_off + 2] << 16)) >>>\n      0\n    );\n  }\n\n  function GetLE32(data, data_off) {\n    return (\n      ((data[data_off + 0] << 0) |\n        (data[data_off + 1] << 8) |\n        (data[data_off + 2] << 16) |\n        (data[data_off + 3] << 24)) >>>\n      0\n    );\n  }\n\n  function WebPRiffParser(src, src_off) {\n    var imagearray = {};\n    var i = 0;\n    var alpha_chunk = false;\n    var alpha_size = 0;\n    var alpha_offset = 0;\n    imagearray[\"frames\"] = [];\n    if (memcmp(src, src_off, \"RIFF\", 4)) return;\n    src_off += 4;\n    var riff_size = GetLE32(src, src_off) + 8;\n    src_off += 8;\n\n    while (src_off < src.length) {\n      var fourcc = GetTag(src, src_off);\n      src_off += 4;\n\n      var payload_size = GetLE32(src, src_off);\n      src_off += 4;\n      var payload_size_padded = payload_size + (payload_size & 1);\n\n      switch (fourcc) {\n        case \"VP8 \":\n        case \"VP8L\":\n          if (typeof imagearray[\"frames\"][i] === \"undefined\")\n            imagearray[\"frames\"][i] = {};\n          var obj = imagearray[\"frames\"][i];\n          var height = [0];\n          var width = [0];\n          obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n          obj[\"src_size\"] = alpha_size + payload_size + 8;\n          //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n          //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n          i++;\n          if (alpha_chunk) {\n            alpha_chunk = false;\n            alpha_size = 0;\n            alpha_offset = 0;\n          }\n          break;\n        case \"VP8X\":\n          var obj = (imagearray[\"header\"] = {});\n          var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n          var src_off_ = src_off + 4;\n          var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n          src_off_ += 3;\n          var canvas_height = (obj[\"canvas_height\"] =\n            1 + GetLE24(src, src_off_));\n          src_off_ += 3;\n          break;\n        case \"ALPH\":\n          alpha_chunk = true;\n          alpha_size = payload_size_padded + 8;\n          alpha_offset = src_off - 8;\n          break;\n\n        case \"ANIM\":\n          var obj = imagearray[\"header\"];\n          var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n          src_off_ = src_off + 4;\n\n          var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n          src_off_ += 2;\n          break;\n        case \"ANMF\":\n          var offset_x = 0,\n            offset_y = 0,\n            width = 0,\n            height = 0,\n            duration = 0,\n            blend = 0,\n            dispose = 0,\n            temp = 0;\n          var obj = (imagearray[\"frames\"][i] = {});\n          obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"duration\"] = duration = GetLE24(src, src_off);\n          src_off += 3;\n          temp = src[src_off++];\n          obj[\"dispose\"] = dispose = temp & 1;\n          obj[\"blend\"] = blend = (temp >> 1) & 1;\n          break;\n        default:\n      }\n      if (fourcc != \"ANMF\") src_off += payload_size_padded;\n    }\n    return imagearray;\n  }\n\n  var height = [0];\n  var width = [0];\n  var pixels = [];\n  var webpdecoder = new _WebPDecoder();\n\n  var response = imageData;\n  var imagearray = WebPRiffParser(response, 0);\n  imagearray[\"response\"] = response;\n  imagearray[\"rgbaoutput\"] = true;\n  imagearray[\"dataurl\"] = false;\n\n  var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n  var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n  if (header) {\n    header[\"loop_counter\"] = header[\"loop_count\"];\n    height = [header[\"canvas_height\"]];\n    width = [header[\"canvas_width\"]];\n\n    var blend = false;\n    for (var f = 0; f < frames.length; f++)\n      if (frames[f][\"blend\"] == 0) {\n        blend = true;\n        break;\n      }\n  }\n\n  var frame = frames[0];\n  var rgba = webpdecoder.WebPDecodeRGBA(\n    response,\n    frame[\"src_off\"],\n    frame[\"src_size\"],\n    width,\n    height\n  );\n  frame[\"rgba\"] = rgba;\n  frame[\"imgwidth\"] = width[0];\n  frame[\"imgheight\"] = height[0];\n\n  for (var i = 0; i < width[0] * height[0] * 4; i++) {\n    pixels[i] = rgba[i];\n  }\n\n  this.width = width;\n  this.height = height;\n  this.data = pixels;\n  return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n  return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n    var reader = new WebPDecoder(imageData, false);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = reader.getData();\n\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * @name processRGBA\n   * @function\n   *\n   * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n   * RGBA array data can be obtained from DOM canvas getImageData.\n   * @ignore\n   */\n  jsPDFAPI.processRGBA = function(imageData, index, alias) {\n    \"use strict\";\n\n    var imagePixels = imageData.data;\n    var length = imagePixels.length;\n    // jsPDF takes alpha data separately so extract that.\n    var rgbOut = new Uint8Array((length / 4) * 3);\n    var alphaOut = new Uint8Array(length / 4);\n    var outIndex = 0;\n    var alphaIndex = 0;\n\n    for (var i = 0; i < length; i += 4) {\n      var r = imagePixels[i];\n      var g = imagePixels[i + 1];\n      var b = imagePixels[i + 2];\n      var alpha = imagePixels[i + 3];\n      rgbOut[outIndex++] = r;\n      rgbOut[outIndex++] = g;\n      rgbOut[outIndex++] = b;\n      alphaOut[alphaIndex++] = alpha;\n    }\n\n    var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n    var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n    return {\n      alpha: alphaData,\n      data: rgbData,\n      index: index,\n      alias: alias,\n      colorSpace: \"DeviceRGB\",\n      bitsPerComponent: 8,\n      width: imageData.width,\n      height: imageData.height\n    };\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Add Language Tag to the generated PDF\n   *\n   * @name setLanguage\n   * @function\n   * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n   * @returns {jsPDF}\n   * @example\n   * var doc = new jsPDF()\n   * doc.text(10, 10, 'This is a test')\n   * doc.setLanguage(\"en-US\")\n   * doc.save('english.pdf')\n   */\n  jsPDFAPI.setLanguage = function(langCode) {\n    \"use strict\";\n\n    var langCodes = {\n      af: \"Afrikaans\",\n      sq: \"Albanian\",\n      ar: \"Arabic (Standard)\",\n      \"ar-DZ\": \"Arabic (Algeria)\",\n      \"ar-BH\": \"Arabic (Bahrain)\",\n      \"ar-EG\": \"Arabic (Egypt)\",\n      \"ar-IQ\": \"Arabic (Iraq)\",\n      \"ar-JO\": \"Arabic (Jordan)\",\n      \"ar-KW\": \"Arabic (Kuwait)\",\n      \"ar-LB\": \"Arabic (Lebanon)\",\n      \"ar-LY\": \"Arabic (Libya)\",\n      \"ar-MA\": \"Arabic (Morocco)\",\n      \"ar-OM\": \"Arabic (Oman)\",\n      \"ar-QA\": \"Arabic (Qatar)\",\n      \"ar-SA\": \"Arabic (Saudi Arabia)\",\n      \"ar-SY\": \"Arabic (Syria)\",\n      \"ar-TN\": \"Arabic (Tunisia)\",\n      \"ar-AE\": \"Arabic (U.A.E.)\",\n      \"ar-YE\": \"Arabic (Yemen)\",\n      an: \"Aragonese\",\n      hy: \"Armenian\",\n      as: \"Assamese\",\n      ast: \"Asturian\",\n      az: \"Azerbaijani\",\n      eu: \"Basque\",\n      be: \"Belarusian\",\n      bn: \"Bengali\",\n      bs: \"Bosnian\",\n      br: \"Breton\",\n      bg: \"Bulgarian\",\n      my: \"Burmese\",\n      ca: \"Catalan\",\n      ch: \"Chamorro\",\n      ce: \"Chechen\",\n      zh: \"Chinese\",\n      \"zh-HK\": \"Chinese (Hong Kong)\",\n      \"zh-CN\": \"Chinese (PRC)\",\n      \"zh-SG\": \"Chinese (Singapore)\",\n      \"zh-TW\": \"Chinese (Taiwan)\",\n      cv: \"Chuvash\",\n      co: \"Corsican\",\n      cr: \"Cree\",\n      hr: \"Croatian\",\n      cs: \"Czech\",\n      da: \"Danish\",\n      nl: \"Dutch (Standard)\",\n      \"nl-BE\": \"Dutch (Belgian)\",\n      en: \"English\",\n      \"en-AU\": \"English (Australia)\",\n      \"en-BZ\": \"English (Belize)\",\n      \"en-CA\": \"English (Canada)\",\n      \"en-IE\": \"English (Ireland)\",\n      \"en-JM\": \"English (Jamaica)\",\n      \"en-NZ\": \"English (New Zealand)\",\n      \"en-PH\": \"English (Philippines)\",\n      \"en-ZA\": \"English (South Africa)\",\n      \"en-TT\": \"English (Trinidad & Tobago)\",\n      \"en-GB\": \"English (United Kingdom)\",\n      \"en-US\": \"English (United States)\",\n      \"en-ZW\": \"English (Zimbabwe)\",\n      eo: \"Esperanto\",\n      et: \"Estonian\",\n      fo: \"Faeroese\",\n      fj: \"Fijian\",\n      fi: \"Finnish\",\n      fr: \"French (Standard)\",\n      \"fr-BE\": \"French (Belgium)\",\n      \"fr-CA\": \"French (Canada)\",\n      \"fr-FR\": \"French (France)\",\n      \"fr-LU\": \"French (Luxembourg)\",\n      \"fr-MC\": \"French (Monaco)\",\n      \"fr-CH\": \"French (Switzerland)\",\n      fy: \"Frisian\",\n      fur: \"Friulian\",\n      gd: \"Gaelic (Scots)\",\n      \"gd-IE\": \"Gaelic (Irish)\",\n      gl: \"Galacian\",\n      ka: \"Georgian\",\n      de: \"German (Standard)\",\n      \"de-AT\": \"German (Austria)\",\n      \"de-DE\": \"German (Germany)\",\n      \"de-LI\": \"German (Liechtenstein)\",\n      \"de-LU\": \"German (Luxembourg)\",\n      \"de-CH\": \"German (Switzerland)\",\n      el: \"Greek\",\n      gu: \"Gujurati\",\n      ht: \"Haitian\",\n      he: \"Hebrew\",\n      hi: \"Hindi\",\n      hu: \"Hungarian\",\n      is: \"Icelandic\",\n      id: \"Indonesian\",\n      iu: \"Inuktitut\",\n      ga: \"Irish\",\n      it: \"Italian (Standard)\",\n      \"it-CH\": \"Italian (Switzerland)\",\n      ja: \"Japanese\",\n      kn: \"Kannada\",\n      ks: \"Kashmiri\",\n      kk: \"Kazakh\",\n      km: \"Khmer\",\n      ky: \"Kirghiz\",\n      tlh: \"Klingon\",\n      ko: \"Korean\",\n      \"ko-KP\": \"Korean (North Korea)\",\n      \"ko-KR\": \"Korean (South Korea)\",\n      la: \"Latin\",\n      lv: \"Latvian\",\n      lt: \"Lithuanian\",\n      lb: \"Luxembourgish\",\n      mk: \"North Macedonia\",\n      ms: \"Malay\",\n      ml: \"Malayalam\",\n      mt: \"Maltese\",\n      mi: \"Maori\",\n      mr: \"Marathi\",\n      mo: \"Moldavian\",\n      nv: \"Navajo\",\n      ng: \"Ndonga\",\n      ne: \"Nepali\",\n      no: \"Norwegian\",\n      nb: \"Norwegian (Bokmal)\",\n      nn: \"Norwegian (Nynorsk)\",\n      oc: \"Occitan\",\n      or: \"Oriya\",\n      om: \"Oromo\",\n      fa: \"Persian\",\n      \"fa-IR\": \"Persian/Iran\",\n      pl: \"Polish\",\n      pt: \"Portuguese\",\n      \"pt-BR\": \"Portuguese (Brazil)\",\n      pa: \"Punjabi\",\n      \"pa-IN\": \"Punjabi (India)\",\n      \"pa-PK\": \"Punjabi (Pakistan)\",\n      qu: \"Quechua\",\n      rm: \"Rhaeto-Romanic\",\n      ro: \"Romanian\",\n      \"ro-MO\": \"Romanian (Moldavia)\",\n      ru: \"Russian\",\n      \"ru-MO\": \"Russian (Moldavia)\",\n      sz: \"Sami (Lappish)\",\n      sg: \"Sango\",\n      sa: \"Sanskrit\",\n      sc: \"Sardinian\",\n      sd: \"Sindhi\",\n      si: \"Singhalese\",\n      sr: \"Serbian\",\n      sk: \"Slovak\",\n      sl: \"Slovenian\",\n      so: \"Somani\",\n      sb: \"Sorbian\",\n      es: \"Spanish\",\n      \"es-AR\": \"Spanish (Argentina)\",\n      \"es-BO\": \"Spanish (Bolivia)\",\n      \"es-CL\": \"Spanish (Chile)\",\n      \"es-CO\": \"Spanish (Colombia)\",\n      \"es-CR\": \"Spanish (Costa Rica)\",\n      \"es-DO\": \"Spanish (Dominican Republic)\",\n      \"es-EC\": \"Spanish (Ecuador)\",\n      \"es-SV\": \"Spanish (El Salvador)\",\n      \"es-GT\": \"Spanish (Guatemala)\",\n      \"es-HN\": \"Spanish (Honduras)\",\n      \"es-MX\": \"Spanish (Mexico)\",\n      \"es-NI\": \"Spanish (Nicaragua)\",\n      \"es-PA\": \"Spanish (Panama)\",\n      \"es-PY\": \"Spanish (Paraguay)\",\n      \"es-PE\": \"Spanish (Peru)\",\n      \"es-PR\": \"Spanish (Puerto Rico)\",\n      \"es-ES\": \"Spanish (Spain)\",\n      \"es-UY\": \"Spanish (Uruguay)\",\n      \"es-VE\": \"Spanish (Venezuela)\",\n      sx: \"Sutu\",\n      sw: \"Swahili\",\n      sv: \"Swedish\",\n      \"sv-FI\": \"Swedish (Finland)\",\n      \"sv-SV\": \"Swedish (Sweden)\",\n      ta: \"Tamil\",\n      tt: \"Tatar\",\n      te: \"Teluga\",\n      th: \"Thai\",\n      tig: \"Tigre\",\n      ts: \"Tsonga\",\n      tn: \"Tswana\",\n      tr: \"Turkish\",\n      tk: \"Turkmen\",\n      uk: \"Ukrainian\",\n      hsb: \"Upper Sorbian\",\n      ur: \"Urdu\",\n      ve: \"Venda\",\n      vi: \"Vietnamese\",\n      vo: \"Volapuk\",\n      wa: \"Walloon\",\n      cy: \"Welsh\",\n      xh: \"Xhosa\",\n      ji: \"Yiddish\",\n      zu: \"Zulu\"\n    };\n\n    if (this.internal.languageSettings === undefined) {\n      this.internal.languageSettings = {};\n      this.internal.languageSettings.isSubscribed = false;\n    }\n\n    if (langCodes[langCode] !== undefined) {\n      this.internal.languageSettings.languageCode = langCode;\n      if (this.internal.languageSettings.isSubscribed === false) {\n        this.internal.events.subscribe(\"putCatalog\", function() {\n          this.internal.write(\n            \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n          );\n        });\n        this.internal.languageSettings.isSubscribed = true;\n      }\n    }\n    return this;\n  };\n})(jsPDF.API);\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *               2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n  \"use strict\";\n  /**\n   * Returns an array of length matching length of the 'word' string, with each\n   * cell occupied by the width of the char in that position.\n   *\n   * @name getCharWidthsArray\n   * @function\n   * @param {string} text\n   * @param {Object} options\n   * @returns {Array}\n   */\n  var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n    options = options || {};\n\n    var activeFont = options.font || this.internal.getFont();\n    var fontSize = options.fontSize || this.internal.getFontSize();\n    var charSpace = options.charSpace || this.internal.getCharSpace();\n\n    var widths = options.widths\n      ? options.widths\n      : activeFont.metadata.Unicode.widths;\n    var widthsFractionOf = widths.fof ? widths.fof : 1;\n    var kerning = options.kerning\n      ? options.kerning\n      : activeFont.metadata.Unicode.kerning;\n    var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n    var doKerning = options.doKerning === false ? false : true;\n    var kerningValue = 0;\n\n    var i;\n    var length = text.length;\n    var char_code;\n    var prior_char_code = 0; //for kerning\n    var default_char_width = widths[0] || widthsFractionOf;\n    var output = [];\n\n    for (i = 0; i < length; i++) {\n      char_code = text.charCodeAt(i);\n\n      if (typeof activeFont.metadata.widthOfString === \"function\") {\n        output.push(\n          (activeFont.metadata.widthOfGlyph(\n            activeFont.metadata.characterToGlyph(char_code)\n          ) +\n            charSpace * (1000 / fontSize) || 0) / 1000\n        );\n      } else {\n        if (\n          doKerning &&\n          typeof kerning[char_code] === \"object\" &&\n          !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n        ) {\n          kerningValue =\n            kerning[char_code][prior_char_code] / kerningFractionOf;\n        } else {\n          kerningValue = 0;\n        }\n        output.push(\n          (widths[char_code] || default_char_width) / widthsFractionOf +\n            kerningValue\n        );\n      }\n      prior_char_code = char_code;\n    }\n\n    return output;\n  });\n\n  /**\n   * Returns a widths of string in a given font, if the font size is set as 1 point.\n   *\n   * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n   * of the string will be that much.\n   *\n   * Multiply by font size to get actual width in *points*\n   * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n   *\n   * @name getStringUnitWidth\n   * @public\n   * @function\n   * @param {string} text\n   * @param {string} options\n   * @returns {number} result\n   */\n  var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n    options = options || {};\n\n    var fontSize = options.fontSize || this.internal.getFontSize();\n    var font = options.font || this.internal.getFont();\n    var charSpace = options.charSpace || this.internal.getCharSpace();\n    var result = 0;\n\n    if (API.processArabic) {\n      text = API.processArabic(text);\n    }\n\n    if (typeof font.metadata.widthOfString === \"function\") {\n      result =\n        font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n    } else {\n      result = getCharWidthsArray\n        .apply(this, arguments)\n        .reduce(function(pv, cv) {\n          return pv + cv;\n        }, 0);\n    }\n    return result;\n  });\n\n  /**\n  returns array of lines\n  */\n  var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n    var answer = [];\n\n    // 1st, chop off the piece that can fit on the hanging line.\n    var i = 0,\n      l = word.length,\n      workingLen = 0;\n    while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n      workingLen += widths_array[i];\n      i++;\n    }\n    // this is first line.\n    answer.push(word.slice(0, i));\n\n    // 2nd. Split the rest into maxLen pieces.\n    var startOfLine = i;\n    workingLen = 0;\n    while (i !== l) {\n      if (workingLen + widths_array[i] > maxLen) {\n        answer.push(word.slice(startOfLine, i));\n        workingLen = 0;\n        startOfLine = i;\n      }\n      workingLen += widths_array[i];\n      i++;\n    }\n    if (startOfLine !== i) {\n      answer.push(word.slice(startOfLine, i));\n    }\n\n    return answer;\n  };\n\n  // Note, all sizing inputs for this function must be in \"font measurement units\"\n  // By default, for PDF, it's \"point\".\n  var splitParagraphIntoLines = function(text, maxlen, options) {\n    // at this time works only on Western scripts, ones with space char\n    // separating the words. Feel free to expand.\n\n    if (!options) {\n      options = {};\n    }\n\n    var line = [],\n      lines = [line],\n      line_length = options.textIndent || 0,\n      separator_length = 0,\n      current_word_length = 0,\n      word,\n      widths_array,\n      words = text.split(\" \"),\n      spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n      i,\n      l,\n      tmp,\n      lineIndent;\n\n    if (options.lineIndent === -1) {\n      lineIndent = words[0].length + 2;\n    } else {\n      lineIndent = options.lineIndent || 0;\n    }\n    if (lineIndent) {\n      var pad = Array(lineIndent).join(\" \"),\n        wrds = [];\n      words.map(function(wrd) {\n        wrd = wrd.split(/\\s*\\n/);\n        if (wrd.length > 1) {\n          wrds = wrds.concat(\n            wrd.map(function(wrd, idx) {\n              return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n            })\n          );\n        } else {\n          wrds.push(wrd[0]);\n        }\n      });\n      words = wrds;\n      lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n    }\n\n    for (i = 0, l = words.length; i < l; i++) {\n      var force = 0;\n\n      word = words[i];\n      if (lineIndent && word[0] == \"\\n\") {\n        word = word.substr(1);\n        force = 1;\n      }\n      widths_array = getCharWidthsArray.apply(this, [word, options]);\n      current_word_length = widths_array.reduce(function(pv, cv) {\n        return pv + cv;\n      }, 0);\n\n      if (\n        line_length + separator_length + current_word_length > maxlen ||\n        force\n      ) {\n        if (current_word_length > maxlen) {\n          // this happens when you have space-less long URLs for example.\n          // we just chop these to size. We do NOT insert hiphens\n          tmp = splitLongWord.apply(this, [\n            word,\n            widths_array,\n            maxlen - (line_length + separator_length),\n            maxlen\n          ]);\n          // first line we add to existing line object\n          line.push(tmp.shift()); // it's ok to have extra space indicator there\n          // last line we make into new line object\n          line = [tmp.pop()];\n          // lines in the middle we apped to lines object as whole lines\n          while (tmp.length) {\n            lines.push([tmp.shift()]); // single fragment occupies whole line\n          }\n          current_word_length = widths_array\n            .slice(word.length - (line[0] ? line[0].length : 0))\n            .reduce(function(pv, cv) {\n              return pv + cv;\n            }, 0);\n        } else {\n          // just put it on a new line\n          line = [word];\n        }\n\n        // now we attach new line to lines\n        lines.push(line);\n        line_length = current_word_length + lineIndent;\n        separator_length = spaceCharWidth;\n      } else {\n        line.push(word);\n\n        line_length += separator_length + current_word_length;\n        separator_length = spaceCharWidth;\n      }\n    }\n\n    var postProcess;\n    if (lineIndent) {\n      postProcess = function(ln, idx) {\n        return (idx ? pad : \"\") + ln.join(\" \");\n      };\n    } else {\n      postProcess = function(ln) {\n        return ln.join(\" \");\n      };\n    }\n\n    return lines.map(postProcess);\n  };\n\n  /**\n   * Splits a given string into an array of strings. Uses 'size' value\n   * (in measurement units declared as default for the jsPDF instance)\n   * and the font's \"widths\" and \"Kerning\" tables, where available, to\n   * determine display length of a given string for a given font.\n   *\n   * We use character's 100% of unit size (height) as width when Width\n   * table or other default width is not available.\n   *\n   * @name splitTextToSize\n   * @public\n   * @function\n   * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n   * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n   * @param {Object} options Optional flags needed for chopper to do the right thing.\n   * @returns {Array} array Array with strings chopped to size.\n   */\n  API.splitTextToSize = function(text, maxlen, options) {\n    \"use strict\";\n\n    options = options || {};\n\n    var fsize = options.fontSize || this.internal.getFontSize(),\n      newOptions = function(options) {\n        var widths = {\n            0: 1\n          },\n          kerning = {};\n\n        if (!options.widths || !options.kerning) {\n          var f = this.internal.getFont(options.fontName, options.fontStyle),\n            encoding = \"Unicode\";\n          // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n          // Actual JavaScript-native String's 16bit char codes used.\n          // no multi-byte logic here\n\n          if (f.metadata[encoding]) {\n            return {\n              widths: f.metadata[encoding].widths || widths,\n              kerning: f.metadata[encoding].kerning || kerning\n            };\n          } else {\n            return {\n              font: f.metadata,\n              fontSize: this.internal.getFontSize(),\n              charSpace: this.internal.getCharSpace()\n            };\n          }\n        } else {\n          return {\n            widths: options.widths,\n            kerning: options.kerning\n          };\n        }\n      }.call(this, options);\n\n    // first we split on end-of-line chars\n    var paragraphs;\n    if (Array.isArray(text)) {\n      paragraphs = text;\n    } else {\n      paragraphs = String(text).split(/\\r?\\n/);\n    }\n\n    // now we convert size (max length of line) into \"font size units\"\n    // at present time, the \"font size unit\" is always 'point'\n    // 'proportional' means, \"in proportion to font size\"\n    var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n    // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n    // this may change in the future?\n    // until then, proportional_maxlen is likely to be in 'points'\n\n    // If first line is to be indented (shorter or longer) than maxLen\n    // we indicate that by using CSS-style \"text-indent\" option.\n    // here it's in font units too (which is likely 'points')\n    // it can be negative (which makes the first line longer than maxLen)\n    newOptions.textIndent = options.textIndent\n      ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n      : 0;\n    newOptions.lineIndent = options.lineIndent;\n\n    var i,\n      l,\n      output = [];\n    for (i = 0, l = paragraphs.length; i < l; i++) {\n      output = output.concat(\n        splitParagraphIntoLines.apply(this, [\n          paragraphs[i],\n          fontUnit_maxLen,\n          newOptions\n        ])\n      );\n    }\n\n    return output;\n  };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n  \"use strict\";\n  API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n  var decoded = \"0123456789abcdef\",\n    encoded = \"klmnopqrstuvwxyz\",\n    mappingUncompress = {},\n    mappingCompress = {};\n\n  for (var i = 0; i < encoded.length; i++) {\n    mappingUncompress[encoded[i]] = decoded[i];\n    mappingCompress[decoded[i]] = encoded[i];\n  }\n\n  var hex = function(value) {\n    return \"0x\" + parseInt(value, 10).toString(16);\n  };\n\n  var compress = (API.__fontmetrics__.compress = function(data) {\n    var vals = [\"{\"];\n    var value, keystring, valuestring, numberprefix;\n\n    for (var key in data) {\n      value = data[key];\n\n      if (!isNaN(parseInt(key, 10))) {\n        key = parseInt(key, 10);\n        keystring = hex(key).slice(2);\n        keystring =\n          keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n      } else {\n        keystring = \"'\" + key + \"'\";\n      }\n\n      if (typeof value == \"number\") {\n        if (value < 0) {\n          valuestring = hex(value).slice(3);\n          numberprefix = \"-\";\n        } else {\n          valuestring = hex(value).slice(2);\n          numberprefix = \"\";\n        }\n        valuestring =\n          numberprefix +\n          valuestring.slice(0, -1) +\n          mappingCompress[valuestring.slice(-1)];\n      } else {\n        if (typeof value === \"object\") {\n          valuestring = compress(value);\n        } else {\n          throw new Error(\n            \"Don't know what to do with value type \" + typeof value + \".\"\n          );\n        }\n      }\n      vals.push(keystring + valuestring);\n    }\n    vals.push(\"}\");\n    return vals.join(\"\");\n  });\n\n  /**\n   * Uncompresses data compressed into custom, base16-like format.\n   *\n   * @public\n   * @function\n   * @param\n   * @returns {Type}\n   */\n  var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n    if (typeof data !== \"string\") {\n      throw new Error(\"Invalid argument passed to uncompress.\");\n    }\n\n    var output = {},\n      sign = 1,\n      stringparts, // undef. will be [] in string mode\n      activeobject = output,\n      parentchain = [],\n      parent_key_pair,\n      keyparts = \"\",\n      valueparts = \"\",\n      key, // undef. will be Truthy when Key is resolved.\n      datalen = data.length - 1, // stripping ending }\n      ch;\n\n    for (var i = 1; i < datalen; i += 1) {\n      // - { } ' are special.\n\n      ch = data[i];\n\n      if (ch == \"'\") {\n        if (stringparts) {\n          // end of string mode\n          key = stringparts.join(\"\");\n          stringparts = undefined;\n        } else {\n          // start of string mode\n          stringparts = [];\n        }\n      } else if (stringparts) {\n        stringparts.push(ch);\n      } else if (ch == \"{\") {\n        // start of object\n        parentchain.push([activeobject, key]);\n        activeobject = {};\n        key = undefined;\n      } else if (ch == \"}\") {\n        // end of object\n        parent_key_pair = parentchain.pop();\n        parent_key_pair[0][parent_key_pair[1]] = activeobject;\n        key = undefined;\n        activeobject = parent_key_pair[0];\n      } else if (ch == \"-\") {\n        sign = -1;\n      } else {\n        // must be number\n        if (key === undefined) {\n          if (mappingUncompress.hasOwnProperty(ch)) {\n            keyparts += mappingUncompress[ch];\n            key = parseInt(keyparts, 16) * sign;\n            sign = +1;\n            keyparts = \"\";\n          } else {\n            keyparts += ch;\n          }\n        } else {\n          if (mappingUncompress.hasOwnProperty(ch)) {\n            valueparts += mappingUncompress[ch];\n            activeobject[key] = parseInt(valueparts, 16) * sign;\n            sign = +1;\n            key = undefined;\n            valueparts = \"\";\n          } else {\n            valueparts += ch;\n          }\n        }\n      }\n    }\n    return output;\n  });\n\n  // encoding = 'Unicode'\n  // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n  // Actual 16bit char codes used.\n  // no multi-byte logic here\n\n  // Unicode characters to WinAnsiEncoding:\n  // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n  // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n  // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n  // as well as give strings with some (supported by these fonts) Unicode characters and\n  // these will be mapped to win cp1252\n  // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n  var encodingBlock = {\n    codePages: [\"WinAnsiEncoding\"],\n    WinAnsiEncoding: uncompress(\n      \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n    )\n  };\n  var encodings = {\n    Unicode: {\n      Courier: encodingBlock,\n      \"Courier-Bold\": encodingBlock,\n      \"Courier-BoldOblique\": encodingBlock,\n      \"Courier-Oblique\": encodingBlock,\n      Helvetica: encodingBlock,\n      \"Helvetica-Bold\": encodingBlock,\n      \"Helvetica-BoldOblique\": encodingBlock,\n      \"Helvetica-Oblique\": encodingBlock,\n      \"Times-Roman\": encodingBlock,\n      \"Times-Bold\": encodingBlock,\n      \"Times-BoldItalic\": encodingBlock,\n      \"Times-Italic\": encodingBlock\n      //\t, 'Symbol'\n      //\t, 'ZapfDingbats'\n    }\n  };\n\n  var fontMetrics = {\n    Unicode: {\n      // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n      // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n      // width is 476/1000 or 47.6% of its height (regardless of font size)\n      // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n      // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n      // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n      \"Courier-Oblique\": uncompress(\n        \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n      ),\n      \"Times-BoldItalic\": uncompress(\n        \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n      ),\n      \"Helvetica-Bold\": uncompress(\n        \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n      ),\n      Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Courier-BoldOblique\": uncompress(\n        \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n      ),\n      \"Times-Bold\": uncompress(\n        \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n      ),\n      Symbol: uncompress(\n        \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n      ),\n      Helvetica: uncompress(\n        \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n      ),\n      \"Helvetica-BoldOblique\": uncompress(\n        \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n      ),\n      ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Times-Italic\": uncompress(\n        \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n      ),\n      \"Times-Roman\": uncompress(\n        \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n      ),\n      \"Helvetica-Oblique\": uncompress(\n        \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n      )\n    }\n  };\n\n  /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n  API.events.push([\n    \"addFont\",\n    function(data) {\n      var font = data.font;\n\n      var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n      if (metrics) {\n        font.metadata[\"Unicode\"] = {};\n        font.metadata[\"Unicode\"].widths = metrics.widths;\n        font.metadata[\"Unicode\"].kerning = metrics.kerning;\n      }\n\n      var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n      if (encodingBlock) {\n        font.metadata[\"Unicode\"].encoding = encodingBlock;\n        font.encoding = encodingBlock.codePages[0];\n      }\n    }\n  ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n  \"use strict\";\n\n  var binaryStringToUint8Array = function(binary_string) {\n    var len = binary_string.length;\n    var bytes = new Uint8Array(len);\n    for (var i = 0; i < len; i++) {\n      bytes[i] = binary_string.charCodeAt(i);\n    }\n    return bytes;\n  };\n\n  var addFont = function(font, file) {\n    // eslint-disable-next-line no-control-regex\n    if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n      file = binaryStringToUint8Array(file);\n    } else {\n      file = binaryStringToUint8Array(atob(file));\n    }\n    font.metadata = jsPDF.API.TTFFont.open(file);\n    font.metadata.Unicode = font.metadata.Unicode || {\n      encoding: {},\n      kerning: {},\n      widths: []\n    };\n    font.metadata.glyIdsUsed = [0];\n  };\n\n  jsPDF.API.events.push([\n    \"addFont\",\n    function(data) {\n      var file = undefined;\n      var font = data.font;\n      var instance = data.instance;\n      if (font.isStandardFont) {\n        return;\n      }\n      if (typeof instance !== \"undefined\") {\n        if (instance.existsFileInVFS(font.postScriptName) === false) {\n          file = instance.loadFile(font.postScriptName);\n        } else {\n          file = instance.getFileFromVFS(font.postScriptName);\n        }\n        if (typeof file !== \"string\") {\n          throw new Error(\n            \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n              font.postScriptName +\n              \"').\"\n          );\n        }\n        addFont(font, file);\n      } else {\n        throw new Error(\n          \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n            font.postScriptName +\n            \"').\"\n        );\n      }\n    }\n  ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  function loadCanvg() {\n    return (function() {\n      if (globalObject[\"canvg\"]) {\n        return Promise.resolve(globalObject[\"canvg\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"canvg\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"canvg\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load canvg\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load canvg: \" + e));\n      })\n      .then(function(canvg) {\n        return canvg.default ? canvg.default : canvg;\n      });\n  }\n\n  /**\n   * Parses SVG XML and saves it as image into the PDF.\n   *\n   * Depends on canvas-element and canvg\n   *\n   * @name addSvgAsImage\n   * @public\n   * @function\n   * @param {string} SVG-Data as Text\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n   * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n   * @param {string} alias of SVG-Image (if used multiple times)\n   * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n   * @param {number} rotation of the image in degrees (0-359)\n   *\n   * @returns jsPDF jsPDF-instance\n   */\n  jsPDFAPI.addSvgAsImage = function(\n    svg,\n    x,\n    y,\n    w,\n    h,\n    alias,\n    compression,\n    rotation\n  ) {\n    if (isNaN(x) || isNaN(y)) {\n      console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n      throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n    }\n\n    if (isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n      throw new Error(\n        \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n      );\n    }\n\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = w;\n    canvas.height = h;\n    var ctx = canvas.getContext(\"2d\");\n    ctx.fillStyle = \"#fff\"; /// set white fill style\n    ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n    var options = {\n      ignoreMouse: true,\n      ignoreAnimation: true,\n      ignoreDimensions: true\n    };\n    var doc = this;\n    return loadCanvg()\n      .then(\n        function(canvg) {\n          return canvg.fromString(ctx, svg, options);\n        },\n        function() {\n          return Promise.reject(new Error(\"Could not load canvg.\"));\n        }\n      )\n      .then(function(instance) {\n        return instance.render(options);\n      })\n      .then(function() {\n        doc.addImage(\n          canvas.toDataURL(\"image/jpeg\", 1.0),\n          x,\n          y,\n          w,\n          h,\n          compression,\n          rotation\n        );\n      });\n  };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  /**\n   * @name putTotalPages\n   * @function\n   * @param {string} pageExpression Regular Expression\n   * @returns {jsPDF} jsPDF-instance\n   */\n\n  jsPDFAPI.putTotalPages = function(pageExpression) {\n    \"use strict\";\n\n    var replaceExpression;\n    var totalNumberOfPages = 0;\n    if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n      replaceExpression = new RegExp(pageExpression, \"g\");\n      totalNumberOfPages = this.internal.getNumberOfPages();\n    } else {\n      replaceExpression = new RegExp(\n        this.pdfEscape16(pageExpression, this.internal.getFont()),\n        \"g\"\n      );\n      totalNumberOfPages = this.pdfEscape16(\n        this.internal.getNumberOfPages() + \"\",\n        this.internal.getFont()\n      );\n    }\n\n    for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n      for (var i = 0; i < this.internal.pages[n].length; i++) {\n        this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n          replaceExpression,\n          totalNumberOfPages\n        );\n      }\n    }\n\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  /**\n   * Set the ViewerPreferences of the generated PDF\n   *\n   * @name viewerPreferences\n   * @function\n   * @public\n   * @param {Object} options Array with the ViewerPreferences<br />\n   * Example: doc.viewerPreferences({\"FitWindow\":true});<br />\n   * <br />\n   * You can set following preferences:<br />\n   * <br/>\n   * <b>HideToolbar</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>HideMenubar</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>HideWindowUI</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>FitWindow</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>CenterWindow</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>DisplayDocTitle</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>NonFullScreenPageMode</b> <i>(string)</i><br />\n   * Possible values: UseNone, UseOutlines, UseThumbs, UseOC<br />\n   * Default value: UseNone<br/>\n   * <br />\n   * <b>Direction</b> <i>(string)</i><br />\n   * Possible values: L2R, R2L<br />\n   * Default value: L2R.<br />\n   * <br />\n   * <b>ViewArea</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox.<br />\n   * <br />\n   * <b>ViewClip</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox<br />\n   * <br />\n   * <b>PrintArea</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox<br />\n   * <br />\n   * <b>PrintClip</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox.<br />\n   * <br />\n   * <b>PrintScaling</b> <i>(string)</i><br />\n   * Possible values: AppDefault, None<br />\n   * Default value: AppDefault.<br />\n   * <br />\n   * <b>Duplex</b> <i>(string)</i><br />\n   * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n   * Default value: none<br />\n   * <br />\n   * <b>PickTrayByPDFSize</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>PrintPageRange</b> <i>(Array)</i><br />\n   * Example: [[1,5], [7,9]]<br />\n   * Default value: as defined by PDF viewer application<br />\n   * <br />\n   * <b>NumCopies</b> <i>(Number)</i><br />\n   * Possible values: 1, 2, 3, 4, 5<br />\n   * Default value: 1<br />\n   * <br />\n   * For more information see the PDF Reference, sixth edition on Page 577\n   * @param {boolean} doReset True to reset the settings\n   * @function\n   * @returns jsPDF jsPDF-instance\n   * @example\n   * var doc = new jsPDF()\n   * doc.text('This is a test', 10, 10)\n   * doc.viewerPreferences({'FitWindow': true}, true)\n   * doc.save(\"viewerPreferences.pdf\")\n   *\n   * // Example printing 10 copies, using cropbox, and hiding UI.\n   * doc.viewerPreferences({\n   *   'HideWindowUI': true,\n   *   'PrintArea': 'CropBox',\n   *   'NumCopies': 10\n   * })\n   */\n  jsPDFAPI.viewerPreferences = function(options, doReset) {\n    options = options || {};\n    doReset = doReset || false;\n\n    var configuration;\n    var configurationTemplate = {\n      HideToolbar: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      HideMenubar: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      HideWindowUI: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      FitWindow: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      CenterWindow: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      DisplayDocTitle: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.4\n      },\n      NonFullScreenPageMode: {\n        defaultValue: \"UseNone\",\n        value: \"UseNone\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n        pdfVersion: 1.3\n      },\n      Direction: {\n        defaultValue: \"L2R\",\n        value: \"L2R\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"L2R\", \"R2L\"],\n        pdfVersion: 1.3\n      },\n      ViewArea: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      ViewClip: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintArea: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintClip: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintScaling: {\n        defaultValue: \"AppDefault\",\n        value: \"AppDefault\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"AppDefault\", \"None\"],\n        pdfVersion: 1.6\n      },\n      Duplex: {\n        defaultValue: \"\",\n        value: \"none\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\n          \"Simplex\",\n          \"DuplexFlipShortEdge\",\n          \"DuplexFlipLongEdge\",\n          \"none\"\n        ],\n        pdfVersion: 1.7\n      },\n      PickTrayByPDFSize: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.7\n      },\n      PrintPageRange: {\n        defaultValue: \"\",\n        value: \"\",\n        type: \"array\",\n        explicitSet: false,\n        valueSet: null,\n        pdfVersion: 1.7\n      },\n      NumCopies: {\n        defaultValue: 1,\n        value: 1,\n        type: \"integer\",\n        explicitSet: false,\n        valueSet: null,\n        pdfVersion: 1.7\n      }\n    };\n\n    var configurationKeys = Object.keys(configurationTemplate);\n\n    var rangeArray = [];\n    var i = 0;\n    var j = 0;\n    var k = 0;\n    var isValid;\n\n    var method;\n    var value;\n\n    function arrayContainsElement(array, element) {\n      var iterator;\n      var result = false;\n\n      for (iterator = 0; iterator < array.length; iterator += 1) {\n        if (array[iterator] === element) {\n          result = true;\n        }\n      }\n      return result;\n    }\n\n    if (this.internal.viewerpreferences === undefined) {\n      this.internal.viewerpreferences = {};\n      this.internal.viewerpreferences.configuration = JSON.parse(\n        JSON.stringify(configurationTemplate)\n      );\n      this.internal.viewerpreferences.isSubscribed = false;\n    }\n    configuration = this.internal.viewerpreferences.configuration;\n\n    if (options === \"reset\" || doReset === true) {\n      var len = configurationKeys.length;\n\n      for (k = 0; k < len; k += 1) {\n        configuration[configurationKeys[k]].value =\n          configuration[configurationKeys[k]].defaultValue;\n        configuration[configurationKeys[k]].explicitSet = false;\n      }\n    }\n\n    if (typeof options === \"object\") {\n      for (method in options) {\n        value = options[method];\n        if (\n          arrayContainsElement(configurationKeys, method) &&\n          value !== undefined\n        ) {\n          if (\n            configuration[method].type === \"boolean\" &&\n            typeof value === \"boolean\"\n          ) {\n            configuration[method].value = value;\n          } else if (\n            configuration[method].type === \"name\" &&\n            arrayContainsElement(configuration[method].valueSet, value)\n          ) {\n            configuration[method].value = value;\n          } else if (\n            configuration[method].type === \"integer\" &&\n            Number.isInteger(value)\n          ) {\n            configuration[method].value = value;\n          } else if (configuration[method].type === \"array\") {\n            for (i = 0; i < value.length; i += 1) {\n              isValid = true;\n              if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n                rangeArray.push(String(value[i] - 1));\n              } else if (value[i].length > 1) {\n                for (j = 0; j < value[i].length; j += 1) {\n                  if (typeof value[i][j] !== \"number\") {\n                    isValid = false;\n                  }\n                }\n                if (isValid === true) {\n                  rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n                }\n              }\n            }\n            configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n          } else {\n            configuration[method].value = configuration[method].defaultValue;\n          }\n\n          configuration[method].explicitSet = true;\n        }\n      }\n    }\n\n    if (this.internal.viewerpreferences.isSubscribed === false) {\n      this.internal.events.subscribe(\"putCatalog\", function() {\n        var pdfDict = [];\n        var vPref;\n        for (vPref in configuration) {\n          if (configuration[vPref].explicitSet === true) {\n            if (configuration[vPref].type === \"name\") {\n              pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n            } else {\n              pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n            }\n          }\n        }\n        if (pdfDict.length !== 0) {\n          this.internal.write(\n            \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n          );\n        }\n      });\n      this.internal.viewerpreferences.isSubscribed = true;\n    }\n\n    this.internal.viewerpreferences.configuration = configuration;\n    return this;\n  };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var postPutResources = function() {\n    var xmpmeta_beginning = '<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">';\n    var rdf_beginning =\n      '<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"' +\n      this.internal.__metadata__.namespaceuri +\n      '\"><jspdf:metadata>';\n    var rdf_ending = \"</jspdf:metadata></rdf:Description></rdf:RDF>\";\n    var xmpmeta_ending = \"</x:xmpmeta>\";\n    var utf8_xmpmeta_beginning = unescape(\n      encodeURIComponent(xmpmeta_beginning)\n    );\n    var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n    var utf8_metadata = unescape(\n      encodeURIComponent(this.internal.__metadata__.metadata)\n    );\n    var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n    var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n    var total_len =\n      utf8_rdf_beginning.length +\n      utf8_metadata.length +\n      utf8_rdf_ending.length +\n      utf8_xmpmeta_beginning.length +\n      utf8_xmpmeta_ending.length;\n\n    this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n    this.internal.write(\n      \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n    );\n    this.internal.write(\"stream\");\n    this.internal.write(\n      utf8_xmpmeta_beginning +\n        utf8_rdf_beginning +\n        utf8_metadata +\n        utf8_rdf_ending +\n        utf8_xmpmeta_ending\n    );\n    this.internal.write(\"endstream\");\n    this.internal.write(\"endobj\");\n  };\n\n  var putCatalog = function() {\n    if (this.internal.__metadata__.metadata_object_number) {\n      this.internal.write(\n        \"/Metadata \" +\n          this.internal.__metadata__.metadata_object_number +\n          \" 0 R\"\n      );\n    }\n  };\n\n  /**\n   * Adds XMP formatted metadata to PDF\n   *\n   * @name addMetadata\n   * @function\n   * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n   * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n   * @returns {jsPDF} jsPDF-instance\n   */\n  jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n    if (typeof this.internal.__metadata__ === \"undefined\") {\n      this.internal.__metadata__ = {\n        metadata: metadata,\n        namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n      };\n      this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n      this.internal.events.subscribe(\"postPutResources\", postPutResources);\n    }\n    return this;\n  };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n  \"use strict\";\n  var jsPDFAPI = jsPDF.API;\n\n  /***************************************************************************************************/\n  /* function : pdfEscape16                                                                          */\n  /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n  /*   the corresponding glyph id and width, and then adding padding to the string.                  */\n  /***************************************************************************************************/\n  var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n    var widths = font.metadata.Unicode.widths;\n    var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n    var ar = [\"\"];\n    for (var i = 0, l = text.length, t; i < l; ++i) {\n      t = font.metadata.characterToGlyph(text.charCodeAt(i));\n      font.metadata.glyIdsUsed.push(t);\n      font.metadata.toUnicode[t] = text.charCodeAt(i);\n      if (widths.indexOf(t) == -1) {\n        widths.push(t);\n        widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n      }\n      if (t == \"0\") {\n        //Spaces are not allowed in cmap.\n        return ar.join(\"\");\n      } else {\n        t = t.toString(16);\n        ar.push(padz[4 - t.length], t);\n      }\n    }\n    return ar.join(\"\");\n  });\n\n  var toUnicodeCmap = function(map) {\n    var code, codes, range, unicode, unicodeMap, _i, _len;\n    unicodeMap =\n      \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n  /Registry (Adobe)\\n  /Ordering (UCS)\\n  /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\";\n    codes = Object.keys(map).sort(function(a, b) {\n      return a - b;\n    });\n\n    range = [];\n    for (_i = 0, _len = codes.length; _i < _len; _i++) {\n      code = codes[_i];\n      if (range.length >= 100) {\n        unicodeMap +=\n          \"\\n\" +\n          range.length +\n          \" beginbfchar\\n\" +\n          range.join(\"\\n\") +\n          \"\\nendbfchar\";\n        range = [];\n      }\n\n      if (\n        map[code] !== undefined &&\n        map[code] !== null &&\n        typeof map[code].toString === \"function\"\n      ) {\n        unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n        code = (\"0000\" + (+code).toString(16)).slice(-4);\n        range.push(\"<\" + code + \"><\" + unicode + \">\");\n      }\n    }\n\n    if (range.length) {\n      unicodeMap +=\n        \"\\n\" +\n        range.length +\n        \" beginbfchar\\n\" +\n        range.join(\"\\n\") +\n        \"\\nendbfchar\\n\";\n    }\n    unicodeMap +=\n      \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n    return unicodeMap;\n  };\n\n  var identityHFunction = function(options) {\n    var font = options.font;\n    var out = options.out;\n    var newObject = options.newObject;\n    var putStream = options.putStream;\n\n    if (\n      font.metadata instanceof jsPDF.API.TTFFont &&\n      font.encoding === \"Identity-H\"\n    ) {\n      //Tag with Identity-H\n      var widths = font.metadata.Unicode.widths;\n      var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n      var pdfOutput = data;\n      var pdfOutput2 = \"\";\n      for (var i = 0; i < pdfOutput.length; i++) {\n        pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n      }\n      var fontTable = newObject();\n      putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n      out(\"endobj\");\n\n      var cmap = newObject();\n      var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n      putStream({ data: cmapData, addLength1: true, objectId: cmap });\n      out(\"endobj\");\n\n      var fontDescriptor = newObject();\n      out(\"<<\");\n      out(\"/Type /FontDescriptor\");\n      out(\"/FontName /\" + toPDFName(font.fontName));\n      out(\"/FontFile2 \" + fontTable + \" 0 R\");\n      out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n      out(\"/Flags \" + font.metadata.flags);\n      out(\"/StemV \" + font.metadata.stemV);\n      out(\"/ItalicAngle \" + font.metadata.italicAngle);\n      out(\"/Ascent \" + font.metadata.ascender);\n      out(\"/Descent \" + font.metadata.decender);\n      out(\"/CapHeight \" + font.metadata.capHeight);\n      out(\">>\");\n      out(\"endobj\");\n\n      var DescendantFont = newObject();\n      out(\"<<\");\n      out(\"/Type /Font\");\n      out(\"/BaseFont /\" + toPDFName(font.fontName));\n      out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n      out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n      out(\"/CIDToGIDMap /Identity\");\n      out(\"/DW 1000\");\n      out(\"/Subtype /CIDFontType2\");\n      out(\"/CIDSystemInfo\");\n      out(\"<<\");\n      out(\"/Supplement 0\");\n      out(\"/Registry (Adobe)\");\n      out(\"/Ordering (\" + font.encoding + \")\");\n      out(\">>\");\n      out(\">>\");\n      out(\"endobj\");\n\n      font.objectNumber = newObject();\n      out(\"<<\");\n      out(\"/Type /Font\");\n      out(\"/Subtype /Type0\");\n      out(\"/ToUnicode \" + cmap + \" 0 R\");\n      out(\"/BaseFont /\" + toPDFName(font.fontName));\n      out(\"/Encoding /\" + font.encoding);\n      out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n      out(\">>\");\n      out(\"endobj\");\n\n      font.isAlreadyPutted = true;\n    }\n  };\n\n  jsPDFAPI.events.push([\n    \"putFont\",\n    function(args) {\n      identityHFunction(args);\n    }\n  ]);\n\n  var winAnsiEncodingFunction = function(options) {\n    var font = options.font;\n    var out = options.out;\n    var newObject = options.newObject;\n    var putStream = options.putStream;\n\n    if (\n      font.metadata instanceof jsPDF.API.TTFFont &&\n      font.encoding === \"WinAnsiEncoding\"\n    ) {\n      //Tag with WinAnsi encoding\n      var data = font.metadata.rawData;\n      var pdfOutput = data;\n      var pdfOutput2 = \"\";\n      for (var i = 0; i < pdfOutput.length; i++) {\n        pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n      }\n      var fontTable = newObject();\n      putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n      out(\"endobj\");\n\n      var cmap = newObject();\n      var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n      putStream({ data: cmapData, addLength1: true, objectId: cmap });\n      out(\"endobj\");\n\n      var fontDescriptor = newObject();\n      out(\"<<\");\n      out(\"/Descent \" + font.metadata.decender);\n      out(\"/CapHeight \" + font.metadata.capHeight);\n      out(\"/StemV \" + font.metadata.stemV);\n      out(\"/Type /FontDescriptor\");\n      out(\"/FontFile2 \" + fontTable + \" 0 R\");\n      out(\"/Flags 96\");\n      out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n      out(\"/FontName /\" + toPDFName(font.fontName));\n      out(\"/ItalicAngle \" + font.metadata.italicAngle);\n      out(\"/Ascent \" + font.metadata.ascender);\n      out(\">>\");\n      out(\"endobj\");\n      font.objectNumber = newObject();\n      for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n        font.metadata.hmtx.widths[j] = parseInt(\n          font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n        ); //Change the width of Em units to Point units.\n      }\n      out(\n        \"<</Subtype/TrueType/Type/Font/ToUnicode \" +\n          cmap +\n          \" 0 R/BaseFont/\" +\n          toPDFName(font.fontName) +\n          \"/FontDescriptor \" +\n          fontDescriptor +\n          \" 0 R\" +\n          \"/Encoding/\" +\n          font.encoding +\n          \" /FirstChar 29 /LastChar 255 /Widths \" +\n          jsPDF.API.PDFObject.convert(font.metadata.hmtx.widths) +\n          \">>\"\n      );\n      out(\"endobj\");\n      font.isAlreadyPutted = true;\n    }\n  };\n\n  jsPDFAPI.events.push([\n    \"putFont\",\n    function(args) {\n      winAnsiEncodingFunction(args);\n    }\n  ]);\n\n  var utf8TextFunction = function(args) {\n    var text = args.text || \"\";\n    var x = args.x;\n    var y = args.y;\n    var options = args.options || {};\n    var mutex = args.mutex || {};\n\n    var pdfEscape = mutex.pdfEscape;\n    var activeFontKey = mutex.activeFontKey;\n    var fonts = mutex.fonts;\n    var key = activeFontKey;\n\n    var str = \"\",\n      s = 0,\n      cmapConfirm;\n    var strText = \"\";\n    var encoding = fonts[key].encoding;\n\n    if (fonts[key].encoding !== \"Identity-H\") {\n      return {\n        text: text,\n        x: x,\n        y: y,\n        options: options,\n        mutex: mutex\n      };\n    }\n    strText = text;\n\n    key = activeFontKey;\n    if (Array.isArray(text)) {\n      strText = text[0];\n    }\n    for (s = 0; s < strText.length; s += 1) {\n      if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n        cmapConfirm =\n          fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n        /*\n             if (Object.prototype.toString.call(text) === '[object Array]') {\n                var i = 0;\n               // for (i = 0; i < text.length; i += 1) {\n                    if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n                        cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n                    } else {\n\n                    }\n                //}\n\n            } else {\n                cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n            }*/\n      }\n      if (!cmapConfirm) {\n        if (\n          strText[s].charCodeAt(0) < 256 &&\n          fonts[key].metadata.hasOwnProperty(\"Unicode\")\n        ) {\n          str += strText[s];\n        } else {\n          str += \"\";\n        }\n      } else {\n        str += strText[s];\n      }\n    }\n    var result = \"\";\n    if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n      //For the default 13 font\n      result = pdfEscape(str, key)\n        .split(\"\")\n        .map(function(cv) {\n          return cv.charCodeAt(0).toString(16);\n        })\n        .join(\"\");\n    } else if (encoding === \"Identity-H\") {\n      result = pdfEscape16(str, fonts[key]);\n    }\n    mutex.isHex = true;\n\n    return {\n      text: result,\n      x: x,\n      y: y,\n      options: options,\n      mutex: mutex\n    };\n  };\n\n  var utf8EscapeFunction = function(parms) {\n    var text = parms.text || \"\",\n      x = parms.x,\n      y = parms.y,\n      options = parms.options,\n      mutex = parms.mutex;\n    var tmpText = [];\n    var args = {\n      text: text,\n      x: x,\n      y: y,\n      options: options,\n      mutex: mutex\n    };\n\n    if (Array.isArray(text)) {\n      var i = 0;\n      for (i = 0; i < text.length; i += 1) {\n        if (Array.isArray(text[i])) {\n          if (text[i].length === 3) {\n            tmpText.push([\n              utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n                .text,\n              text[i][1],\n              text[i][2]\n            ]);\n          } else {\n            tmpText.push(\n              utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n            );\n          }\n        } else {\n          tmpText.push(\n            utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n          );\n        }\n      }\n      parms.text = tmpText;\n    } else {\n      parms.text = utf8TextFunction(\n        Object.assign({}, args, { text: text })\n      ).text;\n    }\n  };\n\n  jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var _initializeVFS = function() {\n    if (typeof this.internal.vFS === \"undefined\") {\n      this.internal.vFS = {};\n    }\n    return true;\n  };\n\n  /**\n   * Check if the file exists in the vFS\n   *\n   * @name existsFileInVFS\n   * @function\n   * @param {string} Possible filename in the vFS.\n   * @returns {boolean}\n   * @example\n   * doc.existsFileInVFS(\"someFile.txt\");\n   */\n  jsPDFAPI.existsFileInVFS = function(filename) {\n    _initializeVFS.call(this);\n    return typeof this.internal.vFS[filename] !== \"undefined\";\n  };\n\n  /**\n   * Add a file to the vFS\n   *\n   * @name addFileToVFS\n   * @function\n   * @param {string} filename The name of the file which should be added.\n   * @param {string} filecontent The content of the file.\n   * @returns {jsPDF}\n   * @example\n   * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n   */\n  jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n    _initializeVFS.call(this);\n    this.internal.vFS[filename] = filecontent;\n    return this;\n  };\n\n  /**\n   * Get the file from the vFS\n   *\n   * @name getFileFromVFS\n   * @function\n   * @param {string} The name of the file which gets requested.\n   * @returns {string}\n   * @example\n   * doc.getFileFromVFS(\"someFile.txt\");\n   */\n  jsPDFAPI.getFileFromVFS = function(filename) {\n    _initializeVFS.call(this);\n\n    if (typeof this.internal.vFS[filename] !== \"undefined\") {\n      return this.internal.vFS[filename];\n    }\n    return null;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n  \"use strict\";\n  /**\n   * Table of Unicode types.\n   *\n   * Generated by:\n   *\n   * var bidi = require(\"./bidi/index\");\n   * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n   * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n   * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n   *\n   * for( var i = 0; i < bidi_accumulate.length; i++) {\n   * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n   * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n   * }\n   * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n   * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n   *\n   * Based on:\n   * https://github.com/mathiasbynens/unicode-8.0.0\n   */\n  var bidiUnicodeTypes = [\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"S\",\n    \"B\",\n    \"S\",\n    \"WS\",\n    \"B\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"B\",\n    \"B\",\n    \"B\",\n    \"S\",\n    \"WS\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"CS\",\n    \"ES\",\n    \"CS\",\n    \"CS\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"B\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"CS\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"EN\",\n    \"EN\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"EN\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"ET\",\n    \"ET\",\n    \"AL\",\n    \"CS\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"ET\",\n    \"AN\",\n    \"AN\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AN\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"L\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"B\",\n    \"LRE\",\n    \"RLE\",\n    \"PDF\",\n    \"LRO\",\n    \"RLO\",\n    \"CS\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"N\",\n    \"LRI\",\n    \"RLI\",\n    \"FSI\",\n    \"PDI\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"EN\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"NSM\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"ES\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"CS\",\n    \"ES\",\n    \"CS\",\n    \"CS\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\"\n  ];\n\n  /**\n   * Unicode Bidi algorithm compliant Bidi engine.\n   * For reference see http://unicode.org/reports/tr9/\n   */\n\n  /**\n   * constructor ( options )\n   *\n   * Initializes Bidi engine\n   *\n   * @param {Object} See 'setOptions' below for detailed description.\n   * options are cashed between invocation of 'doBidiReorder' method\n   *\n   * sample usage pattern of BidiEngine:\n   * var opt = {\n   * \tisInputVisual: true,\n   * \tisInputRtl: false,\n   * \tisOutputVisual: false,\n   * \tisOutputRtl: false,\n   * \tisSymmetricSwapping: true\n   * }\n   * var sourceToTarget = [], levels = [];\n   * var bidiEng = Globalize.bidiEngine(opt);\n   * var src = \"text string to be reordered\";\n   * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n   */\n\n  jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n    var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n    var _STATE_TABLE_LTR = [\n      [0, 3, 0, 1, 0, 0, 0],\n      [0, 3, 0, 1, 2, 2, 0],\n      [0, 3, 0, 0x11, 2, 0, 1],\n      [0, 3, 5, 5, 4, 1, 0],\n      [0, 3, 0x15, 0x15, 4, 0, 1],\n      [0, 3, 5, 5, 4, 2, 0]\n    ];\n\n    var _STATE_TABLE_RTL = [\n      [2, 0, 1, 1, 0, 1, 0],\n      [2, 0, 1, 1, 0, 2, 0],\n      [2, 0, 2, 1, 3, 2, 0],\n      [2, 0, 2, 0x21, 3, 1, 1]\n    ];\n\n    var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n    var _UNICODE_RANGES_MAP = {\n      0: 0,\n      5: 1,\n      6: 2,\n      7: 3,\n      0x20: 4,\n      0xfb: 5,\n      0xfe: 6,\n      0xff: 7\n    };\n\n    var _SWAP_TABLE = [\n      \"\\u0028\",\n      \"\\u0029\",\n      \"\\u0028\",\n      \"\\u003C\",\n      \"\\u003E\",\n      \"\\u003C\",\n      \"\\u005B\",\n      \"\\u005D\",\n      \"\\u005B\",\n      \"\\u007B\",\n      \"\\u007D\",\n      \"\\u007B\",\n      \"\\u00AB\",\n      \"\\u00BB\",\n      \"\\u00AB\",\n      \"\\u2039\",\n      \"\\u203A\",\n      \"\\u2039\",\n      \"\\u2045\",\n      \"\\u2046\",\n      \"\\u2045\",\n      \"\\u207D\",\n      \"\\u207E\",\n      \"\\u207D\",\n      \"\\u208D\",\n      \"\\u208E\",\n      \"\\u208D\",\n      \"\\u2264\",\n      \"\\u2265\",\n      \"\\u2264\",\n      \"\\u2329\",\n      \"\\u232A\",\n      \"\\u2329\",\n      \"\\uFE59\",\n      \"\\uFE5A\",\n      \"\\uFE59\",\n      \"\\uFE5B\",\n      \"\\uFE5C\",\n      \"\\uFE5B\",\n      \"\\uFE5D\",\n      \"\\uFE5E\",\n      \"\\uFE5D\",\n      \"\\uFE64\",\n      \"\\uFE65\",\n      \"\\uFE64\"\n    ];\n\n    var _LTR_RANGES_REG_EXPR = new RegExp(\n      /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n    );\n\n    var _lastArabic = false,\n      _hasUbatAl,\n      _hasUbatB,\n      _hasUbatS,\n      DIR_LTR = 0,\n      DIR_RTL = 1,\n      _isInVisual,\n      _isInRtl,\n      _isOutVisual,\n      _isOutRtl,\n      _isSymmetricSwapping,\n      _dir = DIR_LTR;\n\n    this.__bidiEngine__ = {};\n\n    var _init = function(text, sourceToTargetMap) {\n      if (sourceToTargetMap) {\n        for (var i = 0; i < text.length; i++) {\n          sourceToTargetMap[i] = i;\n        }\n      }\n      if (_isInRtl === undefined) {\n        _isInRtl = _isContextualDirRtl(text);\n      }\n      if (_isOutRtl === undefined) {\n        _isOutRtl = _isContextualDirRtl(text);\n      }\n    };\n\n    // for reference see 3.2 in http://unicode.org/reports/tr9/\n    //\n    var _getCharType = function(ch) {\n      var charCode = ch.charCodeAt(),\n        range = charCode >> 8,\n        rangeIdx = _UNICODE_RANGES_MAP[range];\n\n      if (rangeIdx !== undefined) {\n        return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n      } else if (range === 0xfc || range === 0xfd) {\n        return \"AL\";\n      } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n        //unlikely case\n        return \"L\";\n      } else if (range === 8) {\n        // even less likely\n        return \"R\";\n      }\n      return \"N\"; //undefined type, mark as neutral\n    };\n\n    var _isContextualDirRtl = function(text) {\n      for (var i = 0, charType; i < text.length; i++) {\n        charType = _getCharType(text.charAt(i));\n        if (charType === \"L\") {\n          return false;\n        } else if (charType === \"R\") {\n          return true;\n        }\n      }\n      return false;\n    };\n\n    // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n    //\n    var _resolveCharType = function(chars, types, resolvedTypes, index) {\n      var cType = types[index],\n        wType,\n        nType,\n        i,\n        len;\n      switch (cType) {\n        case \"L\":\n        case \"R\":\n          _lastArabic = false;\n          break;\n        case \"N\":\n        case \"AN\":\n          break;\n\n        case \"EN\":\n          if (_lastArabic) {\n            cType = \"AN\";\n          }\n          break;\n\n        case \"AL\":\n          _lastArabic = true;\n          _hasUbatAl = true;\n          cType = \"R\";\n          break;\n\n        case \"WS\":\n          cType = \"N\";\n          break;\n\n        case \"CS\":\n          if (\n            index < 1 ||\n            index + 1 >= types.length ||\n            ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n            ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n          ) {\n            cType = \"N\";\n          } else if (_lastArabic) {\n            nType = \"AN\";\n          }\n          cType = nType === wType ? nType : \"N\";\n          break;\n\n        case \"ES\":\n          wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n          cType =\n            wType === \"EN\" &&\n            index + 1 < types.length &&\n            types[index + 1] === \"EN\"\n              ? \"EN\"\n              : \"N\";\n          break;\n\n        case \"ET\":\n          if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n            cType = \"EN\";\n            break;\n          } else if (_lastArabic) {\n            cType = \"N\";\n            break;\n          }\n          i = index + 1;\n          len = types.length;\n          while (i < len && types[i] === \"ET\") {\n            i++;\n          }\n          if (i < len && types[i] === \"EN\") {\n            cType = \"EN\";\n          } else {\n            cType = \"N\";\n          }\n          break;\n\n        case \"NSM\":\n          if (_isInVisual && !_isInRtl) {\n            //V->L\n            len = types.length;\n            i = index + 1;\n            while (i < len && types[i] === \"NSM\") {\n              i++;\n            }\n            if (i < len) {\n              var c = chars[index];\n              var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n              wType = types[i];\n              if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n                cType = \"R\";\n                break;\n              }\n            }\n          }\n          if (index < 1 || (wType = types[index - 1]) === \"B\") {\n            cType = \"N\";\n          } else {\n            cType = resolvedTypes[index - 1];\n          }\n          break;\n\n        case \"B\":\n          _lastArabic = false;\n          _hasUbatB = true;\n          cType = _dir;\n          break;\n\n        case \"S\":\n          _hasUbatS = true;\n          cType = \"N\";\n          break;\n\n        case \"LRE\":\n        case \"RLE\":\n        case \"LRO\":\n        case \"RLO\":\n        case \"PDF\":\n          _lastArabic = false;\n          break;\n        case \"BN\":\n          cType = \"N\";\n          break;\n      }\n      return cType;\n    };\n\n    var _handleUbatS = function(types, levels, length) {\n      for (var i = 0; i < length; i++) {\n        if (types[i] === \"S\") {\n          levels[i] = _dir;\n          for (var j = i - 1; j >= 0; j--) {\n            if (types[j] === \"WS\") {\n              levels[j] = _dir;\n            } else {\n              break;\n            }\n          }\n        }\n      }\n    };\n\n    var _invertString = function(text, sourceToTargetMap, levels) {\n      var charArray = text.split(\"\");\n      if (levels) {\n        _computeLevels(charArray, levels, { hiLevel: _dir });\n      }\n      charArray.reverse();\n      sourceToTargetMap && sourceToTargetMap.reverse();\n      return charArray.join(\"\");\n    };\n\n    // For reference see 3.3 in http://unicode.org/reports/tr9/\n    //\n    var _computeLevels = function(chars, levels, params) {\n      var action,\n        condition,\n        i,\n        index,\n        newLevel,\n        prevState,\n        condPos = -1,\n        len = chars.length,\n        newState = 0,\n        resolvedTypes = [],\n        stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n        types = [];\n\n      _lastArabic = false;\n      _hasUbatAl = false;\n      _hasUbatB = false;\n      _hasUbatS = false;\n      for (i = 0; i < len; i++) {\n        types[i] = _getCharType(chars[i]);\n      }\n      for (index = 0; index < len; index++) {\n        prevState = newState;\n        resolvedTypes[index] = _resolveCharType(\n          chars,\n          types,\n          resolvedTypes,\n          index\n        );\n        newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n        action = newState & 0xf0;\n        newState &= 0x0f;\n        levels[index] = newLevel = stateTable[newState][5];\n        if (action > 0) {\n          if (action === 0x10) {\n            for (i = condPos; i < index; i++) {\n              levels[i] = 1;\n            }\n            condPos = -1;\n          } else {\n            condPos = -1;\n          }\n        }\n        condition = stateTable[newState][6];\n        if (condition) {\n          if (condPos === -1) {\n            condPos = index;\n          }\n        } else {\n          if (condPos > -1) {\n            for (i = condPos; i < index; i++) {\n              levels[i] = newLevel;\n            }\n            condPos = -1;\n          }\n        }\n        if (types[index] === \"B\") {\n          levels[index] = 0;\n        }\n        params.hiLevel |= newLevel;\n      }\n      if (_hasUbatS) {\n        _handleUbatS(types, levels, len);\n      }\n    };\n\n    // for reference see 3.4 in http://unicode.org/reports/tr9/\n    //\n    var _invertByLevel = function(\n      level,\n      charArray,\n      sourceToTargetMap,\n      levels,\n      params\n    ) {\n      if (params.hiLevel < level) {\n        return;\n      }\n      if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n        charArray.reverse();\n        sourceToTargetMap && sourceToTargetMap.reverse();\n        return;\n      }\n      var ch,\n        high,\n        end,\n        low,\n        len = charArray.length,\n        start = 0;\n\n      while (start < len) {\n        if (levels[start] >= level) {\n          end = start + 1;\n          while (end < len && levels[end] >= level) {\n            end++;\n          }\n          for (low = start, high = end - 1; low < high; low++, high--) {\n            ch = charArray[low];\n            charArray[low] = charArray[high];\n            charArray[high] = ch;\n            if (sourceToTargetMap) {\n              ch = sourceToTargetMap[low];\n              sourceToTargetMap[low] = sourceToTargetMap[high];\n              sourceToTargetMap[high] = ch;\n            }\n          }\n          start = end;\n        }\n        start++;\n      }\n    };\n\n    // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n    //\n    var _symmetricSwap = function(charArray, levels, params) {\n      if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n        for (var i = 0, index; i < charArray.length; i++) {\n          if (levels[i] === 1) {\n            index = _SWAP_TABLE.indexOf(charArray[i]);\n            if (index >= 0) {\n              charArray[i] = _SWAP_TABLE[index + 1];\n            }\n          }\n        }\n      }\n    };\n\n    var _reorder = function(text, sourceToTargetMap, levels) {\n      var charArray = text.split(\"\"),\n        params = { hiLevel: _dir };\n\n      if (!levels) {\n        levels = [];\n      }\n      _computeLevels(charArray, levels, params);\n      _symmetricSwap(charArray, levels, params);\n      _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n      _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n      return charArray.join(\"\");\n    };\n\n    // doBidiReorder( text, sourceToTargetMap, levels )\n    // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n    // Returns reordered string\n    // @text [String]:\n    // - input string to be reordered, this is input parameter\n    // $sourceToTargetMap [Array] (optional)\n    // - resultant mapping between input and output strings, this is output parameter\n    // $levels [Array] (optional)\n    // - array of calculated Bidi levels, , this is output parameter\n    this.__bidiEngine__.doBidiReorder = function(\n      text,\n      sourceToTargetMap,\n      levels\n    ) {\n      _init(text, sourceToTargetMap);\n      if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n        // LLTR->VLTR, LRTL->VLTR\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n      } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n        // VRTL->VLTR, VLTR->VRTL\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _invertString(text, sourceToTargetMap, levels);\n      } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n        // LLTR->VRTL, LRTL->VRTL\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n        text = _invertString(text, sourceToTargetMap);\n      } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n        // VLTR->LLTR\n        _dir = DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n      } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n        // VLTR->LRTL, VRTL->LLTR\n        text = _invertString(text, sourceToTargetMap);\n        if (_isInRtl) {\n          //LLTR -> VLTR\n          _dir = DIR_LTR;\n          text = _reorder(text, sourceToTargetMap, levels);\n        } else {\n          //LRTL -> VRTL\n          _dir = DIR_RTL;\n          text = _reorder(text, sourceToTargetMap, levels);\n          text = _invertString(text, sourceToTargetMap);\n        }\n      } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n        //  VRTL->LRTL\n        _dir = DIR_RTL;\n        text = _reorder(text, sourceToTargetMap, levels);\n        text = _invertString(text, sourceToTargetMap);\n      } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n        // LRTL->LLTR, LLTR->LRTL\n        var isSymmetricSwappingOrig = _isSymmetricSwapping;\n        if (_isInRtl) {\n          //LRTL->LLTR\n          _dir = DIR_RTL;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _dir = DIR_LTR;\n          _isSymmetricSwapping = false;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _isSymmetricSwapping = isSymmetricSwappingOrig;\n        } else {\n          //LLTR->LRTL\n          _dir = DIR_LTR;\n          text = _reorder(text, sourceToTargetMap, levels);\n          text = _invertString(text, sourceToTargetMap);\n          _dir = DIR_RTL;\n          _isSymmetricSwapping = false;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _isSymmetricSwapping = isSymmetricSwappingOrig;\n          text = _invertString(text, sourceToTargetMap);\n        }\n      }\n      return text;\n    };\n\n    /**\n     * @name setOptions( options )\n     * @function\n     * Sets options for Bidi conversion\n     * @param {Object}:\n     * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n     * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n     * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n     * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n     * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n     */\n    this.__bidiEngine__.setOptions = function(options) {\n      if (options) {\n        _isInVisual = options.isInputVisual;\n        _isOutVisual = options.isOutputVisual;\n        _isInRtl = options.isInputRtl;\n        _isOutRtl = options.isOutputRtl;\n        _isSymmetricSwapping = options.isSymmetricSwapping;\n      }\n    };\n\n    this.__bidiEngine__.setOptions(options);\n    return this.__bidiEngine__;\n  };\n\n  var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n  var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n  var bidiEngineFunction = function(args) {\n    var text = args.text;\n    var x = args.x;\n    var y = args.y;\n    var options = args.options || {};\n    var mutex = args.mutex || {};\n    var lang = options.lang;\n    var tmpText = [];\n\n    options.isInputVisual =\n      typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n    bidiEngine.setOptions(options);\n\n    if (Object.prototype.toString.call(text) === \"[object Array]\") {\n      var i = 0;\n      tmpText = [];\n      for (i = 0; i < text.length; i += 1) {\n        if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n          tmpText.push([\n            bidiEngine.doBidiReorder(text[i][0]),\n            text[i][1],\n            text[i][2]\n          ]);\n        } else {\n          tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n        }\n      }\n      args.text = tmpText;\n    } else {\n      args.text = bidiEngine.doBidiReorder(text);\n    }\n    bidiEngine.setOptions({ isInputVisual: true });\n  };\n\n  jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font                          *\n * Start Data : 2017. 01. 22.                   *\n * Comment : TEXT API                           *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n  /************************************************************************/\n  /* function : open                                                       */\n  /* comment : Decode the encoded ttf content and create a TTFFont object. */\n  /************************************************************************/\n  TTFFont.open = function(file) {\n    return new TTFFont(file);\n  };\n  /***************************************************************/\n  /* function : TTFFont gernerator                               */\n  /* comment : Decode TTF contents are parsed, Data,             */\n  /* Subset object is created, and registerTTF function is called.*/\n  /***************************************************************/\n  function TTFFont(rawData) {\n    var data;\n    this.rawData = rawData;\n    data = this.contents = new Data(rawData);\n    this.contents.pos = 4;\n    if (data.readString(4) === \"ttcf\") {\n      throw new Error(\"TTCF not supported.\");\n    } else {\n      data.pos = 0;\n      this.parse();\n      this.subset = new Subset(this);\n      this.registerTTF();\n    }\n  }\n  /********************************************************/\n  /* function : parse                                     */\n  /* comment : TTF Parses the file contents by each table.*/\n  /********************************************************/\n  TTFFont.prototype.parse = function() {\n    this.directory = new Directory(this.contents);\n    this.head = new HeadTable(this);\n    this.name = new NameTable(this);\n    this.cmap = new CmapTable(this);\n    this.toUnicode = {};\n    this.hhea = new HheaTable(this);\n    this.maxp = new MaxpTable(this);\n    this.hmtx = new HmtxTable(this);\n    this.post = new PostTable(this);\n    this.os2 = new OS2Table(this);\n    this.loca = new LocaTable(this);\n    this.glyf = new GlyfTable(this);\n    this.ascender =\n      (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n    this.decender =\n      (this.os2.exists && this.os2.decender) || this.hhea.decender;\n    this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n    return (this.bbox = [\n      this.head.xMin,\n      this.head.yMin,\n      this.head.xMax,\n      this.head.yMax\n    ]);\n  };\n  /***************************************************************/\n  /* function : registerTTF                                      */\n  /* comment : Get the value to assign pdf font descriptors.     */\n  /***************************************************************/\n  TTFFont.prototype.registerTTF = function() {\n    var e, hi, low, raw, _ref;\n    this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n    this.bbox = function() {\n      var _i, _len, _ref, _results;\n      _ref = this.bbox;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        e = _ref[_i];\n        _results.push(Math.round(e * this.scaleFactor));\n      }\n      return _results;\n    }.call(this);\n    this.stemV = 0;\n    if (this.post.exists) {\n      raw = this.post.italic_angle;\n      hi = raw >> 16;\n      low = raw & 0xff;\n      if ((hi & 0x8000) !== 0) {\n        hi = -((hi ^ 0xffff) + 1);\n      }\n      this.italicAngle = +(\"\" + hi + \".\" + low);\n    } else {\n      this.italicAngle = 0;\n    }\n    this.ascender = Math.round(this.ascender * this.scaleFactor);\n    this.decender = Math.round(this.decender * this.scaleFactor);\n    this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n    this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n    this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n    this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n    this.isSerif =\n      (_ref = this.familyClass) === 1 ||\n      _ref === 2 ||\n      _ref === 3 ||\n      _ref === 4 ||\n      _ref === 5 ||\n      _ref === 7;\n    this.isScript = this.familyClass === 10;\n    this.flags = 0;\n    if (this.post.isFixedPitch) {\n      this.flags |= 1 << 0;\n    }\n    if (this.isSerif) {\n      this.flags |= 1 << 1;\n    }\n    if (this.isScript) {\n      this.flags |= 1 << 3;\n    }\n    if (this.italicAngle !== 0) {\n      this.flags |= 1 << 6;\n    }\n    this.flags |= 1 << 5;\n    if (!this.cmap.unicode) {\n      throw new Error(\"No unicode cmap for font\");\n    }\n  };\n  TTFFont.prototype.characterToGlyph = function(character) {\n    var _ref;\n    return (\n      ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n      0\n    );\n  };\n  TTFFont.prototype.widthOfGlyph = function(glyph) {\n    var scale;\n    scale = 1000.0 / this.head.unitsPerEm;\n    return this.hmtx.forGlyph(glyph).advance * scale;\n  };\n  TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n    var charCode, i, scale, width, _ref;\n    string = \"\" + string;\n    width = 0;\n    for (\n      i = 0, _ref = string.length;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      charCode = string.charCodeAt(i);\n      width +=\n        this.widthOfGlyph(this.characterToGlyph(charCode)) +\n          charSpace * (1000 / size) || 0;\n    }\n    scale = size / 1000;\n    return width * scale;\n  };\n  TTFFont.prototype.lineHeight = function(size, includeGap) {\n    var gap;\n    if (includeGap == null) {\n      includeGap = false;\n    }\n    gap = includeGap ? this.lineGap : 0;\n    return ((this.ascender + gap - this.decender) / 1000) * size;\n  };\n  return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data                                                                              */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n  function Data(data) {\n    this.data = data != null ? data : [];\n    this.pos = 0;\n    this.length = this.data.length;\n  }\n  Data.prototype.readByte = function() {\n    return this.data[this.pos++];\n  };\n  Data.prototype.writeByte = function(byte) {\n    return (this.data[this.pos++] = byte);\n  };\n  Data.prototype.readUInt32 = function() {\n    var b1, b2, b3, b4;\n    b1 = this.readByte() * 0x1000000;\n    b2 = this.readByte() << 16;\n    b3 = this.readByte() << 8;\n    b4 = this.readByte();\n    return b1 + b2 + b3 + b4;\n  };\n  Data.prototype.writeUInt32 = function(val) {\n    this.writeByte((val >>> 24) & 0xff);\n    this.writeByte((val >> 16) & 0xff);\n    this.writeByte((val >> 8) & 0xff);\n    return this.writeByte(val & 0xff);\n  };\n  Data.prototype.readInt32 = function() {\n    var int;\n    int = this.readUInt32();\n    if (int >= 0x80000000) {\n      return int - 0x100000000;\n    } else {\n      return int;\n    }\n  };\n  Data.prototype.writeInt32 = function(val) {\n    if (val < 0) {\n      val += 0x100000000;\n    }\n    return this.writeUInt32(val);\n  };\n  Data.prototype.readUInt16 = function() {\n    var b1, b2;\n    b1 = this.readByte() << 8;\n    b2 = this.readByte();\n    return b1 | b2;\n  };\n  Data.prototype.writeUInt16 = function(val) {\n    this.writeByte((val >> 8) & 0xff);\n    return this.writeByte(val & 0xff);\n  };\n  Data.prototype.readInt16 = function() {\n    var int;\n    int = this.readUInt16();\n    if (int >= 0x8000) {\n      return int - 0x10000;\n    } else {\n      return int;\n    }\n  };\n  Data.prototype.writeInt16 = function(val) {\n    if (val < 0) {\n      val += 0x10000;\n    }\n    return this.writeUInt16(val);\n  };\n  Data.prototype.readString = function(length) {\n    var i, ret;\n    ret = [];\n    for (\n      i = 0;\n      0 <= length ? i < length : i > length;\n      i = 0 <= length ? ++i : --i\n    ) {\n      ret[i] = String.fromCharCode(this.readByte());\n    }\n    return ret.join(\"\");\n  };\n  Data.prototype.writeString = function(val) {\n    var i, _ref, _results;\n    _results = [];\n    for (\n      i = 0, _ref = val.length;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      _results.push(this.writeByte(val.charCodeAt(i)));\n    }\n    return _results;\n  };\n  /*Data.prototype.stringAt = function (pos, length) {\n            this.pos = pos;\n            return this.readString(length);\n        };*/\n  Data.prototype.readShort = function() {\n    return this.readInt16();\n  };\n  Data.prototype.writeShort = function(val) {\n    return this.writeInt16(val);\n  };\n  Data.prototype.readLongLong = function() {\n    var b1, b2, b3, b4, b5, b6, b7, b8;\n    b1 = this.readByte();\n    b2 = this.readByte();\n    b3 = this.readByte();\n    b4 = this.readByte();\n    b5 = this.readByte();\n    b6 = this.readByte();\n    b7 = this.readByte();\n    b8 = this.readByte();\n    if (b1 & 0x80) {\n      return (\n        ((b1 ^ 0xff) * 0x100000000000000 +\n          (b2 ^ 0xff) * 0x1000000000000 +\n          (b3 ^ 0xff) * 0x10000000000 +\n          (b4 ^ 0xff) * 0x100000000 +\n          (b5 ^ 0xff) * 0x1000000 +\n          (b6 ^ 0xff) * 0x10000 +\n          (b7 ^ 0xff) * 0x100 +\n          (b8 ^ 0xff) +\n          1) *\n        -1\n      );\n    }\n    return (\n      b1 * 0x100000000000000 +\n      b2 * 0x1000000000000 +\n      b3 * 0x10000000000 +\n      b4 * 0x100000000 +\n      b5 * 0x1000000 +\n      b6 * 0x10000 +\n      b7 * 0x100 +\n      b8\n    );\n  };\n  Data.prototype.writeLongLong = function(val) {\n    var high, low;\n    high = Math.floor(val / 0x100000000);\n    low = val & 0xffffffff;\n    this.writeByte((high >> 24) & 0xff);\n    this.writeByte((high >> 16) & 0xff);\n    this.writeByte((high >> 8) & 0xff);\n    this.writeByte(high & 0xff);\n    this.writeByte((low >> 24) & 0xff);\n    this.writeByte((low >> 16) & 0xff);\n    this.writeByte((low >> 8) & 0xff);\n    return this.writeByte(low & 0xff);\n  };\n  Data.prototype.readInt = function() {\n    return this.readInt32();\n  };\n  Data.prototype.writeInt = function(val) {\n    return this.writeInt32(val);\n  };\n  /*Data.prototype.slice = function (start, end) {\n            return this.data.slice(start, end);\n        };*/\n  Data.prototype.read = function(bytes) {\n    var buf, i;\n    buf = [];\n    for (\n      i = 0;\n      0 <= bytes ? i < bytes : i > bytes;\n      i = 0 <= bytes ? ++i : --i\n    ) {\n      buf.push(this.readByte());\n    }\n    return buf;\n  };\n  Data.prototype.write = function(bytes) {\n    var byte, i, _len, _results;\n    _results = [];\n    for (i = 0, _len = bytes.length; i < _len; i++) {\n      byte = bytes[i];\n      _results.push(this.writeByte(byte));\n    }\n    return _results;\n  };\n  return Data;\n})();\n\nvar Directory = (function() {\n  var checksum;\n\n  /*****************************************************************************************************/\n  /* function : Directory generator                                                                    */\n  /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n  /*****************************************************************************************************/\n  function Directory(data) {\n    var entry, i, _ref;\n    this.scalarType = data.readInt();\n    this.tableCount = data.readShort();\n    this.searchRange = data.readShort();\n    this.entrySelector = data.readShort();\n    this.rangeShift = data.readShort();\n    this.tables = {};\n    for (\n      i = 0, _ref = this.tableCount;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      entry = {\n        tag: data.readString(4),\n        checksum: data.readInt(),\n        offset: data.readInt(),\n        length: data.readInt()\n      };\n      this.tables[entry.tag] = entry;\n    }\n  }\n  /********************************************************************************************************/\n  /* function : encode                                                                                    */\n  /* comment : It encodes and stores the font table object and information used for the directory object. */\n  /********************************************************************************************************/\n  Directory.prototype.encode = function(tables) {\n    var adjustment,\n      directory,\n      directoryLength,\n      entrySelector,\n      headOffset,\n      log2,\n      offset,\n      rangeShift,\n      searchRange,\n      sum,\n      table,\n      tableCount,\n      tableData,\n      tag;\n    tableCount = Object.keys(tables).length;\n    log2 = Math.log(2);\n    searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n    entrySelector = Math.floor(searchRange / log2);\n    rangeShift = tableCount * 16 - searchRange;\n    directory = new Data();\n    directory.writeInt(this.scalarType);\n    directory.writeShort(tableCount);\n    directory.writeShort(searchRange);\n    directory.writeShort(entrySelector);\n    directory.writeShort(rangeShift);\n    directoryLength = tableCount * 16;\n    offset = directory.pos + directoryLength;\n    headOffset = null;\n    tableData = [];\n    for (tag in tables) {\n      table = tables[tag];\n      directory.writeString(tag);\n      directory.writeInt(checksum(table));\n      directory.writeInt(offset);\n      directory.writeInt(table.length);\n      tableData = tableData.concat(table);\n      if (tag === \"head\") {\n        headOffset = offset;\n      }\n      offset += table.length;\n      while (offset % 4) {\n        tableData.push(0);\n        offset++;\n      }\n    }\n    directory.write(tableData);\n    sum = checksum(directory.data);\n    adjustment = 0xb1b0afba - sum;\n    directory.pos = headOffset + 8;\n    directory.writeUInt32(adjustment);\n    return directory.data;\n  };\n  /***************************************************************/\n  /* function : checksum                                         */\n  /* comment : Duplicate the table for the tag.                  */\n  /***************************************************************/\n  checksum = function(data) {\n    var i, sum, tmp, _ref;\n    data = __slice.call(data);\n    while (data.length % 4) {\n      data.push(0);\n    }\n    tmp = new Data(data);\n    sum = 0;\n    for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n      sum += tmp.readUInt32();\n    }\n    return sum & 0xffffffff;\n  };\n  return Directory;\n})();\n\nvar Table,\n  __hasProp = {}.hasOwnProperty,\n  __extends = function(child, parent) {\n    for (var key in parent) {\n      if (__hasProp.call(parent, key)) child[key] = parent[key];\n    }\n\n    function ctor() {\n      this.constructor = child;\n    }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n    child.__super__ = parent.prototype;\n    return child;\n  };\n\n/***************************************************************/\n/* function : Table                                            */\n/* comment : Save info for each table, and parse the table.    */\n/***************************************************************/\nTable = (function() {\n  function Table(file) {\n    var info;\n    this.file = file;\n    info = this.file.directory.tables[this.tag];\n    this.exists = !!info;\n    if (info) {\n      (this.offset = info.offset), (this.length = info.length);\n      this.parse(this.file.contents);\n    }\n  }\n  Table.prototype.parse = function() {};\n  Table.prototype.encode = function() {};\n  Table.prototype.raw = function() {\n    if (!this.exists) {\n      return null;\n    }\n    this.file.contents.pos = this.offset;\n    return this.file.contents.read(this.length);\n  };\n  return Table;\n})();\n\nvar HeadTable = (function(_super) {\n  __extends(HeadTable, _super);\n\n  function HeadTable() {\n    return HeadTable.__super__.constructor.apply(this, arguments);\n  }\n  HeadTable.prototype.tag = \"head\";\n  HeadTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.revision = data.readInt();\n    this.checkSumAdjustment = data.readInt();\n    this.magicNumber = data.readInt();\n    this.flags = data.readShort();\n    this.unitsPerEm = data.readShort();\n    this.created = data.readLongLong();\n    this.modified = data.readLongLong();\n    this.xMin = data.readShort();\n    this.yMin = data.readShort();\n    this.xMax = data.readShort();\n    this.yMax = data.readShort();\n    this.macStyle = data.readShort();\n    this.lowestRecPPEM = data.readShort();\n    this.fontDirectionHint = data.readShort();\n    this.indexToLocFormat = data.readShort();\n    return (this.glyphDataFormat = data.readShort());\n  };\n  HeadTable.prototype.encode = function(indexToLocFormat) {\n    var table;\n    table = new Data();\n    table.writeInt(this.version);\n    table.writeInt(this.revision);\n    table.writeInt(this.checkSumAdjustment);\n    table.writeInt(this.magicNumber);\n    table.writeShort(this.flags);\n    table.writeShort(this.unitsPerEm);\n    table.writeLongLong(this.created);\n    table.writeLongLong(this.modified);\n    table.writeShort(this.xMin);\n    table.writeShort(this.yMin);\n    table.writeShort(this.xMax);\n    table.writeShort(this.yMax);\n    table.writeShort(this.macStyle);\n    table.writeShort(this.lowestRecPPEM);\n    table.writeShort(this.fontDirectionHint);\n    table.writeShort(indexToLocFormat);\n    table.writeShort(this.glyphDataFormat);\n    return table.data;\n  };\n  return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry                                                             */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n  function CmapEntry(data, offset) {\n    var code,\n      count,\n      endCode,\n      glyphId,\n      glyphIds,\n      i,\n      idDelta,\n      idRangeOffset,\n      index,\n      saveOffset,\n      segCount,\n      segCountX2,\n      start,\n      startCode,\n      tail,\n      _j,\n      _k,\n      _len;\n    this.platformID = data.readUInt16();\n    this.encodingID = data.readShort();\n    this.offset = offset + data.readInt();\n    saveOffset = data.pos;\n    data.pos = this.offset;\n    this.format = data.readUInt16();\n    this.length = data.readUInt16();\n    this.language = data.readUInt16();\n    this.isUnicode =\n      (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n      (this.platformID === 0 && this.format === 4);\n    this.codeMap = {};\n    switch (this.format) {\n      case 0:\n        for (i = 0; i < 256; ++i) {\n          this.codeMap[i] = data.readByte();\n        }\n        break;\n      case 4:\n        segCountX2 = data.readUInt16();\n        segCount = segCountX2 / 2;\n        data.pos += 6;\n        endCode = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        data.pos += 2;\n        startCode = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        idDelta = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        idRangeOffset = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        count = (this.length - data.pos + this.offset) / 2;\n        glyphIds = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= count ? _j < count : _j > count;\n            i = 0 <= count ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n          tail = endCode[i];\n          start = startCode[i];\n          for (\n            code = _k = start;\n            start <= tail ? _k <= tail : _k >= tail;\n            code = start <= tail ? ++_k : --_k\n          ) {\n            if (idRangeOffset[i] === 0) {\n              glyphId = code + idDelta[i];\n            } else {\n              index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n              glyphId = glyphIds[index] || 0;\n              if (glyphId !== 0) {\n                glyphId += idDelta[i];\n              }\n            }\n            this.codeMap[code] = glyphId & 0xffff;\n          }\n        }\n    }\n    data.pos = saveOffset;\n  }\n  CmapEntry.encode = function(charmap, encoding) {\n    var charMap,\n      code,\n      codeMap,\n      codes,\n      delta,\n      deltas,\n      diff,\n      endCode,\n      endCodes,\n      entrySelector,\n      glyphIDs,\n      i,\n      id,\n      indexes,\n      last,\n      map,\n      nextID,\n      offset,\n      old,\n      rangeOffsets,\n      rangeShift,\n      searchRange,\n      segCount,\n      segCountX2,\n      startCode,\n      startCodes,\n      startGlyph,\n      subtable,\n      _i,\n      _j,\n      _k,\n      _l,\n      _len,\n      _len1,\n      _len2,\n      _len3,\n      _len4,\n      _len5,\n      _len6,\n      _len7,\n      _m,\n      _n,\n      _name,\n      _o,\n      _p,\n      _q;\n    subtable = new Data();\n    codes = Object.keys(charmap).sort(function(a, b) {\n      return a - b;\n    });\n    switch (encoding) {\n      case \"macroman\":\n        id = 0;\n        indexes = (function() {\n          var _results = [];\n          for (i = 0; i < 256; ++i) {\n            _results.push(0);\n          }\n          return _results;\n        })();\n        map = {\n          0: 0\n        };\n        codeMap = {};\n        for (_i = 0, _len = codes.length; _i < _len; _i++) {\n          code = codes[_i];\n          if (map[(_name = charmap[code])] == null) {\n            map[_name] = ++id;\n          }\n          codeMap[code] = {\n            old: charmap[code],\n            new: map[charmap[code]]\n          };\n          indexes[code] = map[charmap[code]];\n        }\n        subtable.writeUInt16(1);\n        subtable.writeUInt16(0);\n        subtable.writeUInt32(12);\n        subtable.writeUInt16(0);\n        subtable.writeUInt16(262);\n        subtable.writeUInt16(0);\n        subtable.write(indexes);\n        return {\n          charMap: codeMap,\n          subtable: subtable.data,\n          maxGlyphID: id + 1\n        };\n      case \"unicode\":\n        startCodes = [];\n        endCodes = [];\n        nextID = 0;\n        map = {};\n        charMap = {};\n        last = diff = null;\n        for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n          code = codes[_j];\n          old = charmap[code];\n          if (map[old] == null) {\n            map[old] = ++nextID;\n          }\n          charMap[code] = {\n            old: old,\n            new: map[old]\n          };\n          delta = map[old] - code;\n          if (last == null || delta !== diff) {\n            if (last) {\n              endCodes.push(last);\n            }\n            startCodes.push(code);\n            diff = delta;\n          }\n          last = code;\n        }\n        if (last) {\n          endCodes.push(last);\n        }\n        endCodes.push(0xffff);\n        startCodes.push(0xffff);\n        segCount = startCodes.length;\n        segCountX2 = segCount * 2;\n        searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n        entrySelector = Math.log(searchRange / 2) / Math.LN2;\n        rangeShift = 2 * segCount - searchRange;\n        deltas = [];\n        rangeOffsets = [];\n        glyphIDs = [];\n        for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n          startCode = startCodes[i];\n          endCode = endCodes[i];\n          if (startCode === 0xffff) {\n            deltas.push(0);\n            rangeOffsets.push(0);\n            break;\n          }\n          startGlyph = charMap[startCode][\"new\"];\n          if (startCode - startGlyph >= 0x8000) {\n            deltas.push(0);\n            rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n            for (\n              code = _l = startCode;\n              startCode <= endCode ? _l <= endCode : _l >= endCode;\n              code = startCode <= endCode ? ++_l : --_l\n            ) {\n              glyphIDs.push(charMap[code][\"new\"]);\n            }\n          } else {\n            deltas.push(startGlyph - startCode);\n            rangeOffsets.push(0);\n          }\n        }\n        subtable.writeUInt16(3);\n        subtable.writeUInt16(1);\n        subtable.writeUInt32(12);\n        subtable.writeUInt16(4);\n        subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n        subtable.writeUInt16(0);\n        subtable.writeUInt16(segCountX2);\n        subtable.writeUInt16(searchRange);\n        subtable.writeUInt16(entrySelector);\n        subtable.writeUInt16(rangeShift);\n        for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n          code = endCodes[_m];\n          subtable.writeUInt16(code);\n        }\n        subtable.writeUInt16(0);\n        for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n          code = startCodes[_n];\n          subtable.writeUInt16(code);\n        }\n        for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n          delta = deltas[_o];\n          subtable.writeUInt16(delta);\n        }\n        for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n          offset = rangeOffsets[_p];\n          subtable.writeUInt16(offset);\n        }\n        for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n          id = glyphIDs[_q];\n          subtable.writeUInt16(id);\n        }\n        return {\n          charMap: charMap,\n          subtable: subtable.data,\n          maxGlyphID: nextID + 1\n        };\n    }\n  };\n  return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n  __extends(CmapTable, _super);\n\n  function CmapTable() {\n    return CmapTable.__super__.constructor.apply(this, arguments);\n  }\n  CmapTable.prototype.tag = \"cmap\";\n  CmapTable.prototype.parse = function(data) {\n    var entry, i, tableCount;\n    data.pos = this.offset;\n    this.version = data.readUInt16();\n    tableCount = data.readUInt16();\n    this.tables = [];\n    this.unicode = null;\n    for (\n      i = 0;\n      0 <= tableCount ? i < tableCount : i > tableCount;\n      i = 0 <= tableCount ? ++i : --i\n    ) {\n      entry = new CmapEntry(data, this.offset);\n      this.tables.push(entry);\n      if (entry.isUnicode) {\n        if (this.unicode == null) {\n          this.unicode = entry;\n        }\n      }\n    }\n    return true;\n  };\n  /*************************************************************************/\n  /* function : encode                                                     */\n  /* comment : Encode the cmap table corresponding to the input character. */\n  /*************************************************************************/\n  CmapTable.encode = function(charmap, encoding) {\n    var result, table;\n    if (encoding == null) {\n      encoding = \"macroman\";\n    }\n    result = CmapEntry.encode(charmap, encoding);\n    table = new Data();\n    table.writeUInt16(0);\n    table.writeUInt16(1);\n    result.table = table.data.concat(result.subtable);\n    return result;\n  };\n  return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n  __extends(HheaTable, _super);\n\n  function HheaTable() {\n    return HheaTable.__super__.constructor.apply(this, arguments);\n  }\n  HheaTable.prototype.tag = \"hhea\";\n  HheaTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.ascender = data.readShort();\n    this.decender = data.readShort();\n    this.lineGap = data.readShort();\n    this.advanceWidthMax = data.readShort();\n    this.minLeftSideBearing = data.readShort();\n    this.minRightSideBearing = data.readShort();\n    this.xMaxExtent = data.readShort();\n    this.caretSlopeRise = data.readShort();\n    this.caretSlopeRun = data.readShort();\n    this.caretOffset = data.readShort();\n    data.pos += 4 * 2;\n    this.metricDataFormat = data.readShort();\n    return (this.numberOfMetrics = data.readUInt16());\n  };\n  /*HheaTable.prototype.encode = function (ids) {\n            var i, table, _i, _ref;\n            table = new Data;\n            table.writeInt(this.version);\n            table.writeShort(this.ascender);\n            table.writeShort(this.decender);\n            table.writeShort(this.lineGap);\n            table.writeShort(this.advanceWidthMax);\n            table.writeShort(this.minLeftSideBearing);\n            table.writeShort(this.minRightSideBearing);\n            table.writeShort(this.xMaxExtent);\n            table.writeShort(this.caretSlopeRise);\n            table.writeShort(this.caretSlopeRun);\n            table.writeShort(this.caretOffset);\n            for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                table.writeByte(0);\n            }\n            table.writeShort(this.metricDataFormat);\n            table.writeUInt16(ids.length);\n            return table.data;\n        };*/\n  return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n  __extends(OS2Table, _super);\n\n  function OS2Table() {\n    return OS2Table.__super__.constructor.apply(this, arguments);\n  }\n  OS2Table.prototype.tag = \"OS/2\";\n  OS2Table.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readUInt16();\n    this.averageCharWidth = data.readShort();\n    this.weightClass = data.readUInt16();\n    this.widthClass = data.readUInt16();\n    this.type = data.readShort();\n    this.ySubscriptXSize = data.readShort();\n    this.ySubscriptYSize = data.readShort();\n    this.ySubscriptXOffset = data.readShort();\n    this.ySubscriptYOffset = data.readShort();\n    this.ySuperscriptXSize = data.readShort();\n    this.ySuperscriptYSize = data.readShort();\n    this.ySuperscriptXOffset = data.readShort();\n    this.ySuperscriptYOffset = data.readShort();\n    this.yStrikeoutSize = data.readShort();\n    this.yStrikeoutPosition = data.readShort();\n    this.familyClass = data.readShort();\n    this.panose = (function() {\n      var i, _results;\n      _results = [];\n      for (i = 0; i < 10; ++i) {\n        _results.push(data.readByte());\n      }\n      return _results;\n    })();\n    this.charRange = (function() {\n      var i, _results;\n      _results = [];\n      for (i = 0; i < 4; ++i) {\n        _results.push(data.readInt());\n      }\n      return _results;\n    })();\n    this.vendorID = data.readString(4);\n    this.selection = data.readShort();\n    this.firstCharIndex = data.readShort();\n    this.lastCharIndex = data.readShort();\n    if (this.version > 0) {\n      this.ascent = data.readShort();\n      this.descent = data.readShort();\n      this.lineGap = data.readShort();\n      this.winAscent = data.readShort();\n      this.winDescent = data.readShort();\n      this.codePageRange = (function() {\n        var i, _results;\n        _results = [];\n        for (i = 0; i < 2; i = ++i) {\n          _results.push(data.readInt());\n        }\n        return _results;\n      })();\n      if (this.version > 1) {\n        this.xHeight = data.readShort();\n        this.capHeight = data.readShort();\n        this.defaultChar = data.readShort();\n        this.breakChar = data.readShort();\n        return (this.maxContext = data.readShort());\n      }\n    }\n  };\n  /*OS2Table.prototype.encode = function () {\n            return this.raw();\n        };*/\n  return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n  var POSTSCRIPT_GLYPHS;\n  __extends(PostTable, _super);\n\n  function PostTable() {\n    return PostTable.__super__.constructor.apply(this, arguments);\n  }\n  PostTable.prototype.tag = \"post\";\n  PostTable.prototype.parse = function(data) {\n    var length, numberOfGlyphs, _results;\n    data.pos = this.offset;\n    this.format = data.readInt();\n    this.italicAngle = data.readInt();\n    this.underlinePosition = data.readShort();\n    this.underlineThickness = data.readShort();\n    this.isFixedPitch = data.readInt();\n    this.minMemType42 = data.readInt();\n    this.maxMemType42 = data.readInt();\n    this.minMemType1 = data.readInt();\n    this.maxMemType1 = data.readInt();\n    switch (this.format) {\n      case 0x00010000:\n        break;\n      case 0x00020000:\n        numberOfGlyphs = data.readUInt16();\n        this.glyphNameIndex = [];\n        var i;\n        for (\n          i = 0;\n          0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n          i = 0 <= numberOfGlyphs ? ++i : --i\n        ) {\n          this.glyphNameIndex.push(data.readUInt16());\n        }\n        this.names = [];\n        _results = [];\n        while (data.pos < this.offset + this.length) {\n          length = data.readByte();\n          _results.push(this.names.push(data.readString(length)));\n        }\n        return _results;\n      case 0x00025000:\n        numberOfGlyphs = data.readUInt16();\n        return (this.offsets = data.read(numberOfGlyphs));\n      case 0x00030000:\n        break;\n      case 0x00040000:\n        return (this.map = function() {\n          var _j, _ref, _results1;\n          _results1 = [];\n          for (\n            i = _j = 0, _ref = this.file.maxp.numGlyphs;\n            0 <= _ref ? _j < _ref : _j > _ref;\n            i = 0 <= _ref ? ++_j : --_j\n          ) {\n            _results1.push(data.readUInt32());\n          }\n          return _results1;\n        }.call(this));\n    }\n  };\n  /*PostTable.prototype.glyphFor = function (code) {\n            var index;\n            switch (this.format) {\n            case 0x00010000:\n                return POSTSCRIPT_GLYPHS[code] || '.notdef';\n            case 0x00020000:\n                index = this.glyphNameIndex[code];\n                if (index <= 257) {\n                    return POSTSCRIPT_GLYPHS[index];\n                }\n                else {\n                    return this.names[index - 258] || '.notdef';\n                }\n                break;\n            case 0x00025000:\n                return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n            case 0x00030000:\n                return '.notdef';\n            case 0x00040000:\n                return this.map[code] || 0xFFFF;\n            }\n        };*/\n  /*PostTable.prototype.encode = function (mapping) {\n            var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n            if (!this.exists) {\n                return null;\n            }\n            raw = this.raw();\n            if (this.format === 0x00030000) {\n                return raw;\n            }\n            table = new Data(raw.slice(0, 32));\n            table.writeUInt32(0x00020000);\n            table.pos = 32;\n            indexes = [];\n            strings = [];\n            for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n                id = mapping[_i];\n                post = this.glyphFor(id);\n                position = POSTSCRIPT_GLYPHS.indexOf(post);\n                if (position !== -1) {\n                    indexes.push(position);\n                }\n                else {\n                    indexes.push(257 + strings.length);\n                    strings.push(post);\n                }\n            }\n            table.writeUInt16(Object.keys(mapping).length);\n            for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n                index = indexes[_j];\n                table.writeUInt16(index);\n            }\n            for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n                string = strings[_k];\n                table.writeByte(string.length);\n                table.writeString(string);\n            }\n            return table.data;\n        };*/\n  POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n    /\\s+/g\n  );\n  return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry                                                                                  */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n  function NameEntry(raw, entry) {\n    this.raw = raw;\n    this.length = raw.length;\n    this.platformID = entry.platformID;\n    this.encodingID = entry.encodingID;\n    this.languageID = entry.languageID;\n  }\n  return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n  var subsetTag;\n  __extends(NameTable, _super);\n\n  function NameTable() {\n    return NameTable.__super__.constructor.apply(this, arguments);\n  }\n  NameTable.prototype.tag = \"name\";\n  NameTable.prototype.parse = function(data) {\n    var count,\n      entries,\n      entry,\n      i,\n      name,\n      stringOffset,\n      strings,\n      text,\n      _j,\n      _len,\n      _name;\n    data.pos = this.offset;\n    data.readShort(); //format\n    count = data.readShort();\n    stringOffset = data.readShort();\n    entries = [];\n    for (\n      i = 0;\n      0 <= count ? i < count : i > count;\n      i = 0 <= count ? ++i : --i\n    ) {\n      entries.push({\n        platformID: data.readShort(),\n        encodingID: data.readShort(),\n        languageID: data.readShort(),\n        nameID: data.readShort(),\n        length: data.readShort(),\n        offset: this.offset + stringOffset + data.readShort()\n      });\n    }\n    strings = {};\n    for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n      entry = entries[i];\n      data.pos = entry.offset;\n      text = data.readString(entry.length);\n      name = new NameEntry(text, entry);\n      if (strings[(_name = entry.nameID)] == null) {\n        strings[_name] = [];\n      }\n      strings[entry.nameID].push(name);\n    }\n    this.strings = strings;\n    this.copyright = strings[0];\n    this.fontFamily = strings[1];\n    this.fontSubfamily = strings[2];\n    this.uniqueSubfamily = strings[3];\n    this.fontName = strings[4];\n    this.version = strings[5];\n    try {\n      this.postscriptName = strings[6][0].raw.replace(\n        /[\\x00-\\x19\\x80-\\xff]/g,\n        \"\"\n      );\n    } catch (e) {\n      this.postscriptName = strings[4][0].raw.replace(\n        /[\\x00-\\x19\\x80-\\xff]/g,\n        \"\"\n      );\n    }\n    this.trademark = strings[7];\n    this.manufacturer = strings[8];\n    this.designer = strings[9];\n    this.description = strings[10];\n    this.vendorUrl = strings[11];\n    this.designerUrl = strings[12];\n    this.license = strings[13];\n    this.licenseUrl = strings[14];\n    this.preferredFamily = strings[15];\n    this.preferredSubfamily = strings[17];\n    this.compatibleFull = strings[18];\n    return (this.sampleText = strings[19]);\n  };\n  subsetTag = \"AAAAAA\";\n  /*NameTable.prototype.encode = function () {\n            var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n            strings = {};\n            _ref = this.strings;\n            for (id in _ref) {\n                val = _ref[id];\n                strings[id] = val;\n            }\n            postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n                platformID: 1\n                , encodingID: 0\n                , languageID: 0\n            });\n            strings[6] = [postscriptName];\n            subsetTag = successorOf(subsetTag);\n            strCount = 0;\n            for (id in strings) {\n                list = strings[id];\n                if (list != null) {\n                    strCount += list.length;\n                }\n            }\n            table = new Data;\n            strTable = new Data;\n            table.writeShort(0);\n            table.writeShort(strCount);\n            table.writeShort(6 + 12 * strCount);\n            for (nameID in strings) {\n                list = strings[nameID];\n                if (list != null) {\n                    for (_i = 0, _len = list.length; _i < _len; _i++) {\n                        string = list[_i];\n                        table.writeShort(string.platformID);\n                        table.writeShort(string.encodingID);\n                        table.writeShort(string.languageID);\n                        table.writeShort(nameID);\n                        table.writeShort(string.length);\n                        table.writeShort(strTable.pos);\n                        strTable.writeString(string.raw);\n                    }\n                }\n            }\n            return nameTable = {\n                postscriptName: postscriptName.raw\n                , table: table.data.concat(strTable.data)\n            };\n        };*/\n  return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n  __extends(MaxpTable, _super);\n\n  function MaxpTable() {\n    return MaxpTable.__super__.constructor.apply(this, arguments);\n  }\n  MaxpTable.prototype.tag = \"maxp\";\n  MaxpTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.numGlyphs = data.readUInt16();\n    this.maxPoints = data.readUInt16();\n    this.maxContours = data.readUInt16();\n    this.maxCompositePoints = data.readUInt16();\n    this.maxComponentContours = data.readUInt16();\n    this.maxZones = data.readUInt16();\n    this.maxTwilightPoints = data.readUInt16();\n    this.maxStorage = data.readUInt16();\n    this.maxFunctionDefs = data.readUInt16();\n    this.maxInstructionDefs = data.readUInt16();\n    this.maxStackElements = data.readUInt16();\n    this.maxSizeOfInstructions = data.readUInt16();\n    this.maxComponentElements = data.readUInt16();\n    return (this.maxComponentDepth = data.readUInt16());\n  };\n  /*MaxpTable.prototype.encode = function (ids) {\n            var table;\n            table = new Data;\n            table.writeInt(this.version);\n            table.writeUInt16(ids.length);\n            table.writeUInt16(this.maxPoints);\n            table.writeUInt16(this.maxContours);\n            table.writeUInt16(this.maxCompositePoints);\n            table.writeUInt16(this.maxComponentContours);\n            table.writeUInt16(this.maxZones);\n            table.writeUInt16(this.maxTwilightPoints);\n            table.writeUInt16(this.maxStorage);\n            table.writeUInt16(this.maxFunctionDefs);\n            table.writeUInt16(this.maxInstructionDefs);\n            table.writeUInt16(this.maxStackElements);\n            table.writeUInt16(this.maxSizeOfInstructions);\n            table.writeUInt16(this.maxComponentElements);\n            table.writeUInt16(this.maxComponentDepth);\n            return table.data;\n        };*/\n  return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n  __extends(HmtxTable, _super);\n\n  function HmtxTable() {\n    return HmtxTable.__super__.constructor.apply(this, arguments);\n  }\n  HmtxTable.prototype.tag = \"hmtx\";\n  HmtxTable.prototype.parse = function(data) {\n    var i, last, lsbCount, m, _j, _ref, _results;\n    data.pos = this.offset;\n    this.metrics = [];\n    for (\n      i = 0, _ref = this.file.hhea.numberOfMetrics;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      this.metrics.push({\n        advance: data.readUInt16(),\n        lsb: data.readInt16()\n      });\n    }\n    lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n    this.leftSideBearings = (function() {\n      var _j, _results;\n      _results = [];\n      for (\n        i = _j = 0;\n        0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n        i = 0 <= lsbCount ? ++_j : --_j\n      ) {\n        _results.push(data.readInt16());\n      }\n      return _results;\n    })();\n    this.widths = function() {\n      var _j, _len, _ref1, _results;\n      _ref1 = this.metrics;\n      _results = [];\n      for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n        m = _ref1[_j];\n        _results.push(m.advance);\n      }\n      return _results;\n    }.call(this);\n    last = this.widths[this.widths.length - 1];\n    _results = [];\n    for (\n      i = _j = 0;\n      0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n      i = 0 <= lsbCount ? ++_j : --_j\n    ) {\n      _results.push(this.widths.push(last));\n    }\n    return _results;\n  };\n  /***************************************************************/\n  /* function : forGlyph                                         */\n  /* comment : Returns the advance width and lsb for this glyph. */\n  /***************************************************************/\n  HmtxTable.prototype.forGlyph = function(id) {\n    if (id in this.metrics) {\n      return this.metrics[id];\n    }\n    return {\n      advance: this.metrics[this.metrics.length - 1].advance,\n      lsb: this.leftSideBearings[id - this.metrics.length]\n    };\n  };\n  /*HmtxTable.prototype.encode = function (mapping) {\n            var id, metric, table, _i, _len;\n            table = new Data;\n            for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n                id = mapping[_i];\n                metric = this.forGlyph(id);\n                table.writeUInt16(metric.advance);\n                table.writeUInt16(metric.lsb);\n            }\n            return table.data;\n        };*/\n  return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n  __extends(GlyfTable, _super);\n\n  function GlyfTable() {\n    return GlyfTable.__super__.constructor.apply(this, arguments);\n  }\n  GlyfTable.prototype.tag = \"glyf\";\n  GlyfTable.prototype.parse = function() {\n    return (this.cache = {});\n  };\n  GlyfTable.prototype.glyphFor = function(id) {\n    var data,\n      index,\n      length,\n      loca,\n      numberOfContours,\n      raw,\n      xMax,\n      xMin,\n      yMax,\n      yMin;\n    if (id in this.cache) {\n      return this.cache[id];\n    }\n    loca = this.file.loca;\n    data = this.file.contents;\n    index = loca.indexOf(id);\n    length = loca.lengthOf(id);\n    if (length === 0) {\n      return (this.cache[id] = null);\n    }\n    data.pos = this.offset + index;\n    raw = new Data(data.read(length));\n    numberOfContours = raw.readShort();\n    xMin = raw.readShort();\n    yMin = raw.readShort();\n    xMax = raw.readShort();\n    yMax = raw.readShort();\n    if (numberOfContours === -1) {\n      this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n    } else {\n      this.cache[id] = new SimpleGlyph(\n        raw,\n        numberOfContours,\n        xMin,\n        yMin,\n        xMax,\n        yMax\n      );\n    }\n    return this.cache[id];\n  };\n  GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n    var glyph, id, offsets, table, _i, _len;\n    table = [];\n    offsets = [];\n    for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n      id = mapping[_i];\n      glyph = glyphs[id];\n      offsets.push(table.length);\n      if (glyph) {\n        table = table.concat(glyph.encode(old2new));\n      }\n    }\n    offsets.push(table.length);\n    return {\n      table: table,\n      offsets: offsets\n    };\n  };\n  return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n  /**************************************************************************/\n  /* function : SimpleGlyph                                                 */\n  /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n  /**************************************************************************/\n  function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n    this.raw = raw;\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n    this.compound = false;\n  }\n  SimpleGlyph.prototype.encode = function() {\n    return this.raw.data;\n  };\n  return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n  var ARG_1_AND_2_ARE_WORDS,\n    MORE_COMPONENTS,\n    WE_HAVE_AN_X_AND_Y_SCALE,\n    WE_HAVE_A_SCALE,\n    WE_HAVE_A_TWO_BY_TWO,\n    WE_HAVE_INSTRUCTIONS;\n  ARG_1_AND_2_ARE_WORDS = 0x0001;\n  WE_HAVE_A_SCALE = 0x0008;\n  MORE_COMPONENTS = 0x0020;\n  WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n  WE_HAVE_A_TWO_BY_TWO = 0x0080;\n  WE_HAVE_INSTRUCTIONS = 0x0100;\n\n  /********************************************************************************************************************/\n  /* function : CompoundGlypg generator                                                                               */\n  /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n  /********************************************************************************************************************/\n  function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n    var data, flags;\n    this.raw = raw;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n    this.compound = true;\n    this.glyphIDs = [];\n    this.glyphOffsets = [];\n    data = this.raw;\n    while (true) {\n      flags = data.readShort();\n      this.glyphOffsets.push(data.pos);\n      this.glyphIDs.push(data.readUInt16());\n      if (!(flags & MORE_COMPONENTS)) {\n        break;\n      }\n      if (flags & ARG_1_AND_2_ARE_WORDS) {\n        data.pos += 4;\n      } else {\n        data.pos += 2;\n      }\n      if (flags & WE_HAVE_A_TWO_BY_TWO) {\n        data.pos += 8;\n      } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n        data.pos += 4;\n      } else if (flags & WE_HAVE_A_SCALE) {\n        data.pos += 2;\n      }\n    }\n  }\n  /****************************************************************************************************************/\n  /* function : CompoundGlypg encode                                                                              */\n  /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n  /****************************************************************************************************************/\n  CompoundGlyph.prototype.encode = function() {\n    var i, result, _len, _ref;\n    result = new Data(__slice.call(this.raw.data));\n    _ref = this.glyphIDs;\n    for (i = 0, _len = _ref.length; i < _len; ++i) {\n      result.pos = this.glyphOffsets[i];\n    }\n    return result.data;\n  };\n  return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n  __extends(LocaTable, _super);\n\n  function LocaTable() {\n    return LocaTable.__super__.constructor.apply(this, arguments);\n  }\n  LocaTable.prototype.tag = \"loca\";\n  LocaTable.prototype.parse = function(data) {\n    var format, i;\n    data.pos = this.offset;\n    format = this.file.head.indexToLocFormat;\n    if (format === 0) {\n      return (this.offsets = function() {\n        var _ref, _results;\n        _results = [];\n        for (i = 0, _ref = this.length; i < _ref; i += 2) {\n          _results.push(data.readUInt16() * 2);\n        }\n        return _results;\n      }.call(this));\n    } else {\n      return (this.offsets = function() {\n        var _ref, _results;\n        _results = [];\n        for (i = 0, _ref = this.length; i < _ref; i += 4) {\n          _results.push(data.readUInt32());\n        }\n        return _results;\n      }.call(this));\n    }\n  };\n  LocaTable.prototype.indexOf = function(id) {\n    return this.offsets[id];\n  };\n  LocaTable.prototype.lengthOf = function(id) {\n    return this.offsets[id + 1] - this.offsets[id];\n  };\n  LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n    var LocaTable = new Uint32Array(this.offsets.length);\n    var glyfPtr = 0;\n    var listGlyf = 0;\n    for (var k = 0; k < LocaTable.length; ++k) {\n      LocaTable[k] = glyfPtr;\n      if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n        ++listGlyf;\n        LocaTable[k] = glyfPtr;\n        var start = this.offsets[k];\n        var len = this.offsets[k + 1] - start;\n        if (len > 0) {\n          glyfPtr += len;\n        }\n      }\n    }\n    var newLocaTable = new Array(LocaTable.length * 4);\n    for (var j = 0; j < LocaTable.length; ++j) {\n      newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n      newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n      newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n      newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n    }\n    return newLocaTable;\n  };\n  return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert                                                                */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n  var key, ret, val;\n  ret = {};\n  for (key in object) {\n    val = object[key];\n    ret[val] = key;\n  }\n  return ret;\n};\n\n/*var successorOf = function (input) {\n        var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n        alphabet = 'abcdefghijklmnopqrstuvwxyz';\n        length = alphabet.length;\n        result = input;\n        i = input.length;\n        while (i >= 0) {\n            last = input.charAt(--i);\n            if (isNaN(last)) {\n                index = alphabet.indexOf(last.toLowerCase());\n                if (index === -1) {\n                    next = last;\n                    carry = true;\n                }\n                else {\n                    next = alphabet.charAt((index + 1) % length);\n                    isUpperCase = last === last.toUpperCase();\n                    if (isUpperCase) {\n                        next = next.toUpperCase();\n                    }\n                    carry = index + 1 >= length;\n                    if (carry && i === 0) {\n                        added = isUpperCase ? 'A' : 'a';\n                        result = added + next + result.slice(1);\n                        break;\n                    }\n                }\n            }\n            else {\n                next = +last + 1;\n                carry = next > 9;\n                if (carry) {\n                    next = 0;\n                }\n                if (carry && i === 0) {\n                    result = '1' + next + result.slice(1);\n                    break;\n                }\n            }\n            result = result.slice(0, i) + next + result.slice(i + 1);\n            if (!carry) {\n                break;\n            }\n        }\n        return result;\n    };*/\n\nvar Subset = (function() {\n  function Subset(font) {\n    this.font = font;\n    this.subset = {};\n    this.unicodes = {};\n    this.next = 33;\n  }\n  /*Subset.prototype.use = function (character) {\n            var i, _i, _ref;\n            if (typeof character === 'string') {\n                for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                    this.use(character.charCodeAt(i));\n                }\n                return;\n            }\n            if (!this.unicodes[character]) {\n                this.subset[this.next] = character;\n                return this.unicodes[character] = this.next++;\n            }\n        };*/\n  /*Subset.prototype.encodeText = function (text) {\n            var char, i, string, _i, _ref;\n            string = '';\n            for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                char = this.unicodes[text.charCodeAt(i)];\n                string += String.fromCharCode(char);\n            }\n            return string;\n        };*/\n  /***************************************************************/\n  /* function : generateCmap                                     */\n  /* comment : Returns the unicode cmap for this font.         */\n  /***************************************************************/\n  Subset.prototype.generateCmap = function() {\n    var mapping, roman, unicode, unicodeCmap, _ref;\n    unicodeCmap = this.font.cmap.tables[0].codeMap;\n    mapping = {};\n    _ref = this.subset;\n    for (roman in _ref) {\n      unicode = _ref[roman];\n      mapping[roman] = unicodeCmap[unicode];\n    }\n    return mapping;\n  };\n  /*Subset.prototype.glyphIDs = function () {\n            var ret, roman, unicode, unicodeCmap, val, _ref;\n            unicodeCmap = this.font.cmap.tables[0].codeMap;\n            ret = [0];\n            _ref = this.subset;\n            for (roman in _ref) {\n                unicode = _ref[roman];\n                val = unicodeCmap[unicode];\n                if ((val != null) && __indexOf.call(ret, val) < 0) {\n                    ret.push(val);\n                }\n            }\n            return ret.sort();\n        };*/\n  /******************************************************************/\n  /* function : glyphsFor                                           */\n  /* comment : Returns simple glyph objects for the input character.*/\n  /******************************************************************/\n  Subset.prototype.glyphsFor = function(glyphIDs) {\n    var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n    glyphs = {};\n    for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n      id = glyphIDs[_i];\n      glyphs[id] = this.font.glyf.glyphFor(id);\n    }\n    additionalIDs = [];\n    for (id in glyphs) {\n      glyph = glyphs[id];\n      if (glyph != null ? glyph.compound : void 0) {\n        additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n      }\n    }\n    if (additionalIDs.length > 0) {\n      _ref = this.glyphsFor(additionalIDs);\n      for (id in _ref) {\n        glyph = _ref[id];\n        glyphs[id] = glyph;\n      }\n    }\n    return glyphs;\n  };\n  /***************************************************************/\n  /* function : encode                                           */\n  /* comment : Encode various tables for the characters you use. */\n  /***************************************************************/\n  Subset.prototype.encode = function(glyID, indexToLocFormat) {\n    var cmap,\n      code,\n      glyf,\n      glyphs,\n      id,\n      ids,\n      loca,\n      new2old,\n      newIDs,\n      nextGlyphID,\n      old2new,\n      oldID,\n      oldIDs,\n      tables,\n      _ref;\n    cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n    glyphs = this.glyphsFor(glyID);\n    old2new = {\n      0: 0\n    };\n    _ref = cmap.charMap;\n    for (code in _ref) {\n      ids = _ref[code];\n      old2new[ids.old] = ids[\"new\"];\n    }\n    nextGlyphID = cmap.maxGlyphID;\n    for (oldID in glyphs) {\n      if (!(oldID in old2new)) {\n        old2new[oldID] = nextGlyphID++;\n      }\n    }\n    new2old = invert(old2new);\n    newIDs = Object.keys(new2old).sort(function(a, b) {\n      return a - b;\n    });\n    oldIDs = (function() {\n      var _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n        id = newIDs[_i];\n        _results.push(new2old[id]);\n      }\n      return _results;\n    })();\n    glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n    loca = this.font.loca.encode(glyf.offsets, oldIDs);\n    tables = {\n      cmap: this.font.cmap.raw(),\n      glyf: glyf.table,\n      loca: loca,\n      hmtx: this.font.hmtx.raw(),\n      hhea: this.font.hhea.raw(),\n      maxp: this.font.maxp.raw(),\n      post: this.font.post.raw(),\n      name: this.font.name.raw(),\n      head: this.font.head.encode(indexToLocFormat)\n    };\n    if (this.font.os2.exists) {\n      tables[\"OS/2\"] = this.font.os2.raw();\n    }\n    return this.font.directory.encode(tables);\n  };\n  return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n  var pad;\n\n  function PDFObject() {}\n  pad = function(str, length) {\n    return (Array(length + 1).join(\"0\") + str).slice(-length);\n  };\n  /*****************************************************************************/\n  /* function : convert                                                        */\n  /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n  /*****************************************************************************/\n  PDFObject.convert = function(object) {\n    var e, items, key, out, val;\n    if (Array.isArray(object)) {\n      items = (function() {\n        var _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = object.length; _i < _len; _i++) {\n          e = object[_i];\n          _results.push(PDFObject.convert(e));\n        }\n        return _results;\n      })().join(\" \");\n      return \"[\" + items + \"]\";\n    } else if (typeof object === \"string\") {\n      return \"/\" + object;\n    } else if (object != null ? object.isString : void 0) {\n      return \"(\" + object + \")\";\n    } else if (object instanceof Date) {\n      return (\n        \"(D:\" +\n        pad(object.getUTCFullYear(), 4) +\n        pad(object.getUTCMonth(), 2) +\n        pad(object.getUTCDate(), 2) +\n        pad(object.getUTCHours(), 2) +\n        pad(object.getUTCMinutes(), 2) +\n        pad(object.getUTCSeconds(), 2) +\n        \"Z)\"\n      );\n    } else if ({}.toString.call(object) === \"[object Object]\") {\n      out = [\"<<\"];\n      for (key in object) {\n        val = object[key];\n        out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n      }\n      out.push(\">>\");\n      return out.join(\"\\n\");\n    } else {\n      return \"\" + object;\n    }\n  };\n  return PDFObject;\n})();\n"],"names":["zlibSync","unzlibSync"],"mappings":"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AE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;AAC1C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC;AACpB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC,MA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I;AACR,GAAG,CAAC;AACJ,EAAE,IAAI,uBAAuB,GAAG;AAChC,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,0BAA0B,GAAG;AACnC,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,EAAE,IAAI,yBAAyB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACzE,EAAE,IAAI,0BAA0B,GAAG;AACnC,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,IAAI;AACR,GAAG,CAAC;AACJ,EAAE,IAAI,yBAAyB,GAAG;AAClC,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,eAAe,CAAC,EAAE,EAAE;AAC/B,IAAI,IAAI,GAAG,GAAG;AACd,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,EAAE;AACR,KAAK,CAAC;AACN;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,KAAK,CAAC;AACN,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,GAAG;AACT,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,GAAG;AACT,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,WAAW;AACjB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AACtC,MAAM,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AACxC,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7E,QAAQ,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/E,QAAQ,CAAC,EAAE,CAAC;AACZ,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE;AACjD,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;AACzC,QAAQ,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACnD,QAAQ,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,SAAS,EAAE,CAAC;AACpB,OAAO;AACP,MAAM,SAAS,IAAI,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,MAAM,GAAG,iBAAiB;AAC9B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,iBAAiB;AAC/B,MAAM,0BAA0B;AAChC,MAAM,yBAAyB;AAC/B,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,iBAAiB;AAC9B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,iBAAiB;AAC/B,MAAM,0BAA0B;AAChC,MAAM,yBAAyB;AAC/B,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,kBAAkB,GAAG;AAChC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;AACxC;AACA,MAAM,KAAK,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE;AACjD,QAAQ,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AACnC,QAAQ,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACjC,QAAQ,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACrC,QAAQ,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACpC,OAAO;AACP;AACA,MAAM,KAAK,IAAI,KAAK,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;AACnE,QAAQ,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AACtC,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACpC,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC;AACxD,OAAO;AACP,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,eAAe,GAAG;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACnC,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAChD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC;AACxD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAClD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC5D,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAClD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AACjD,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,SAAS,SAAS,CAAC,EAAE,EAAE;AACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,MAAM,IAAI,CAAC,EAAE;AACxB,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC;AAChC,OAAO;AACP,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,IAAI,OAAO,GAAG,CAAC,EAAE;AACvB,QAAQ,IAAI,OAAO,IAAI,IAAI,EAAE;AAC7B,UAAU,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1B,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE;AAC5B;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE;AAC5B,IAAI,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACnC,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC5B,GAAG;AACH;AACA;AACA,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvC;AACA,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B;AACA,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB;AACA;AACA,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AACxC;AACA,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC;AAC7C,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AACrC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AACrC;AACA;AACA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1B;AACA;AACA,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC;AAC7C,MAAM,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC;AACtC,MAAM,IAAI,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,EAAE,CAAC;AACxC,MAAM,IAAI,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC;AACnC;AACA,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1B,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1B;AACA,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnC;AACA,MAAM,OAAO,IAAI,CAAC,CAAC;AACnB,KAAK;AACL;AACA;AACA,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC9B;AACA,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B;AACA;AACA,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACpC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACpC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACpC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACpC;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;AACxC,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;AAC7C;AACA,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,GAAG,OAAO,IAAI,WAAW,CAAC;AACnD,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;AAC1C,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;AAC1C;AACA;AACA,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAChC,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAChC,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAChC;AACA;AACA,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,GAAG,OAAO,IAAI,WAAW,CAAC;AACnD,MAAM,IAAI,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;AAC5C,MAAM,IAAI,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC;AACvC;AACA,MAAM,IAAI,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAChC,MAAM,IAAI,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAChC;AACA,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACxC,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACxC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACvC,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACxC;AACA,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL;AACA;AACA,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B;AACA,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,eAAe,CAAC,CAAC,CAAC;AACxB,QAAQ,SAAS,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,CAAC;AACxE;AACA,KAAK;AACL,IAAI,OAAO,eAAe,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,SAAS,SAAS,GAAG;AACvB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAClB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAClB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACrB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACnB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB;AACA,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL;AACA,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL;AACA,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAClB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvC;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACf;AACA,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;AACnB,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;AACzB,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,OAAO,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE;AACtB,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,OAAO,CAAC,IAAI,OAAO,EAAE;AACzB,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC;AACvB,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE;AACzC,QAAQ,EAAE,CAAC,CAAC;AACZ,OAAO;AACP,MAAM,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;AAClC,MAAM,IAAI,QAAQ,IAAI,GAAG,EAAE;AAC3B,QAAQ,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC;AAC5B,QAAQ,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,GAAG,EAAE,EAAE,QAAQ;AAC1D,UAAU,SAAS,CAAC,SAAS,CAAC,CAAC;AAC/B,QAAQ,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC;AAClC,OAAO;AACP,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,CAAC,EAAE,CAAC;AACV,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,GAAG,EAAE;AACxB,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,SAAS,mBAAmB,GAAG;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC;AACA,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,GAAG;AAChB,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI;AACJ,IAAI,IAAI,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACrC;AACA;AACA,IAAI,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC;AAC1B,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB;AACA;AACA,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,QAAQ,EAAE,CAAC;AACf;AACA;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB;AACA,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;AACzC;AACA,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B;AACA,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC;AACT,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChB,IAAI,IAAI,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,IAAI,OAAO,CAAC,GAAG,MAAM,EAAE;AACvB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,OAAO,CAAC,GAAG,SAAS,EAAE;AAC5B,QAAQ,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,GAAG,GAAG,CAAC,CAAC;AAChB;AACA,QAAQ,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;AACvC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACzB,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,UAAU,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;AAC5C;AACA,UAAU,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,EAAE;AACjC;AACA,YAAY,CAAC,IAAI,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;AACpD,WAAW;AACX;AACA,UAAU,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE;AACpC;AACA,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;AACzC,WAAW;AACX;AACA,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,CAAC,GAAG,CAAC;AAClB,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9B,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC3C,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC3C,cAAc,EAAE;AAChB,YAAY,GAAG,CAAC;AAChB,UAAU,GAAG,CAAC,GAAG,CAAC;AAClB,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC3C,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5C,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5C,cAAc,EAAE;AAChB,YAAY,GAAG,CAAC;AAChB,UAAU,GAAG,CAAC,GAAG,CAAC;AAClB,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5C,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5C,cAAc,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5C,cAAc,EAAE;AAChB,YAAY,GAAG,CAAC;AAChB,SAAS;AACT;AACA,QAAQ,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAQ,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9D,QAAQ,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9D,QAAQ,CAAC,IAAI,EAAE,CAAC;AAChB,OAAO;AACP,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE;AACtB,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC;AACxB,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAChC,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB;AACA,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,UAAU,CAAC,OAAO,EAAE;AAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClD;AACA,IAAI,IAAI,cAAc,IAAI,OAAO,EAAE,OAAO;AAC1C;AACA,IAAI,IAAI,EAAE;AACV,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;AAChF;AACA,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACxB,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B;AACA,GAAG;AACH;AACA,EAAE,SAAS,IAAI,GAAG;AAClB,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B;AACA,IAAI,mBAAmB,EAAE,CAAC;AAC1B,IAAI,cAAc,EAAE,CAAC;AACrB,IAAI,kBAAkB,EAAE,CAAC;AACzB,IAAI,eAAe,EAAE,CAAC;AACtB;AACA,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,EAAE,CAAC;AACT;;AC1tCA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,QAAQ,EAAE;AAEpB;AACA,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;AAC1E,IAAI,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;AAC1C,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK;AAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7C,IAAI,IAAI,YAAY,GAAG;AACvB,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,MAAM;AACpB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAChD,IAAI,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC5E,GAAG,CAAC;AACJ;AACA,EAAE,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;AAClD,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;;ACzCb;AACA;AACA;AACA;AACA;AACA;AAGA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE;AAC3C,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;AACvC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,EAAE,IAAI,CAAC,IAAI;AACX,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,IAAI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,CAAC;AACD;AACA,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC9C,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9D,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChB;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;AAC/C,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE;AACvB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAChE,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACtD,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACxB,QAAQ,GAAG,EAAE,GAAG;AAChB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,IAAI,EAAE,IAAI;AAClB,OAAO,CAAC;AACR,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAC3C,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,EAAE,IAAI;AACN,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAClC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACpC;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AACzC,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACpC,UAAU,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACvD,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACjD,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACtD,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACpD,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,SAAS,MAAM;AACf,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACtB,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3B;AACA,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACxC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC;AACA,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM;AACzC;AACA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACzC,KAAK;AACL;AACA,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5B,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACvC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACvC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,MAAM,CAAC;AAClB,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACjD,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACzD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACxD,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC;AACA,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;AACtB,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,MAAM,CAAC;AAClB,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,GAAG,OAAO,CAAC;AACnB,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpB,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACjD,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACzD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/C;AACA,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;AACtB,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AACxC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACtD,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AACxC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACtD,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,KAAK;AACL;AACA;AACA,GAAG;AACH,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW;AAC1C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;;AChRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,QAAQ,EAAE;AAEpB;AACA,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;AACvE,IAAI,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClD,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK;AAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;AAClC;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,MAAM;AACpB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAChD,IAAI,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC5E,GAAG,CAAC;AACJ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;;ACrCb,SAAS,WAAW,CAAC,SAAS,EAAE;AAqChC;AACA,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;AAChB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3E,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,SAAS,EAAE,GAAG;AAChB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM;AACpC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/C,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM;AACpC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,IAAI,YAAY,GAAG,WAAW;AAChC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AAIpB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,aAAa,CAAC,GAAG,CAAC,EAAE;AACpB,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAClB,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAChC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACpC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,OAAO;AACP,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACpB,QAAQ,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AACxC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5B,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACtB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,aAAa,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO;AACP,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AACzC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5B,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACjC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACtB,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI;AAC7C,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,cAAc,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;AAChC,cAAc,EAAE,CAAC,CAAC;AAClB,cAAc,CAAC,KAAK,CAAC,CAAC;AACtB,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,WAAW;AACX,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,WAAW,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AACjD,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,CAAC,GAAG;AACjB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;AACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC;AACX,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AACpC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AACpB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AACxD,UAAU,EAAE,CAAC,CAAC,EAAE;AAChB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAC3B,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACd,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AACjB,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;AACvC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AACrB,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,cAAc,CAAC,CAAC,EAAE;AAClB,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;AAClB,MAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAChC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACrC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM;AACN,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU;AACpE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;AAChE,QAAQ,CAAC;AACT,QAAQ;AACR,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,SAAS;AACT,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AAC9B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC5B,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC1B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AAC7B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;AACtB,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;AACpE,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACrB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;AACpE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;AACpE,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACpD,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9B,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACjE,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,CAAC;AAChB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAClC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,WAAW;AACX,aAAa,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAClD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,IAAI,CAAC;AAChB,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AAC7B,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,EAAE;AACd,cAAc,CAAC;AACf,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACrC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;AACxC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5B,gBAAgB,CAAC;AACjB,aAAa;AACb,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AACtB,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACtD,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5H,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AAC3B,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxI,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,CAAC,IAAI,CAAC;AACZ,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3E,UAAU,EAAE,CAAC,CAAC,CAAC;AACf,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AAC9B,QAAQ,CAAC,CAAC,GAAG,CAAC;AACd,WAAW,CAAC,GAAG,CAAC;AAChB,WAAW,CAAC,GAAG,CAAC;AAChB,WAAW,CAAC,GAAG,CAAC;AAChB,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;AACpB,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;AACpB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,UAAU,CAAC,EAAE;AACb,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC;AACX,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,IAAI;AAChB,YAAY,IAAI;AAChB,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,YAAY,IAAI;AAChB,YAAY,IAAI;AAChB,YAAY,CAAC;AACb,WAAW,CAAC;AACZ,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,EAAE;AACZ,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACrD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAClB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC1C,WAAW;AACX,QAAQ,IAAI,CAAC,EAAE;AACf,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG;AACnC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACxB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACxB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACtB,YAAY,EAAE,EAAE,CAAC;AACjB,WAAW;AACX,SAAS,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;AACrC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACpB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC;AAChC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;AACjD,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE;AAC5C,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;AACvC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE;AAC5C,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACpC,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,QAAQ,EAAE,GAAG,CAAC,CAAC;AACf,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAChB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAClC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,GAAG,CAAC;AACX,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAClB,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI;AAChC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,QAAQ,QAAQ,CAAC,CAAC,EAAE;AACpB,UAAU,KAAK,CAAC;AAChB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,YAAY,MAAM;AAClB,UAAU,KAAK,CAAC;AAChB,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,IAAI,CAAC;AAClB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjD,eAAe,CAAC,IAAI,CAAC;AACrB,eAAe,CAAC,IAAI,CAAC;AACrB,cAAc,EAAE,CAAC,CAAC,CAAC;AACnB,YAAY;AACZ,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,cAAc,CAAC,GAAG,CAAC;AACnB;AACA,cAAc;AACd,cAAc,IAAI,CAAC,GAAG,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,cAAc,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACzD,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9C,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,eAAe;AACf,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,EAAE,CAAC,CAAC;AAClB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,aAAa;AACb,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,YAAY,MAAM;AAClB,UAAU,KAAK,CAAC;AAChB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACpD,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACnC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,cAAc,CAAC,GAAG,CAAC;AACnB,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1E,cAAc,EAAE,CAAC,CAAC;AAClB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,aAAa;AACb,YAAY,MAAM;AAClB,UAAU,KAAK,CAAC;AAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC7C,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,EAAE,CAAC;AACrB,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,aAAa,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,OAAO;AACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACrB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACzB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,QAAQ,CAAC,IAAI,CAAC;AACd,aAAa,CAAC,GAAG,CAAC;AAClB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACxB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,EAAE;AACf,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACxB,YAAY;AACZ,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;AAC9B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,cAAc,CAAC,GAAG,CAAC,EAAE;AACrB;AACA,cAAc;AACd,cAAc,IAAI,CAAC,GAAG,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,EAAE;AACvB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,kBAAkB,MAAM;AACxB,gBAAgB;AAChB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,eAAe;AACf,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,aAAa;AACb,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtB,WAAW,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACpD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9B,SAAS;AACT,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ;AACR,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B;AACA,UAAU,OAAO,CAAC,CAAC;AACnB,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC3C,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;AACzB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC1B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ;AAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI;AAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,MAAM,CAAC,EAAE,SAAS;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AAC7B,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACvB,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACvB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG;AAC/B,cAAc,IAAI,CAAC,GAAG,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC;AACvB,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,aAAa,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;AACzB,UAAU,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;AAC5B,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,mBAAmB;AACnB,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;AAC/B,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpE,eAAe;AACf,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,YAAY,EAAE,CAAC,CAAC;AAChB,YAAY,EAAE,CAAC,CAAC;AAChB,YAAY;AACZ,cAAc,CAAC,IAAI,CAAC;AACpB,eAAe,CAAC,CAAC,GAAG,CAAC;AACrB,cAAc,EAAE,CAAC;AACjB,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD,cAAc,IAAI,IAAI,CAAC,CAAC;AACxB;AACA,cAAc,OAAO,CAAC,GAAG,CAAC;AAC1B,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,WAAW,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AAC9B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;AAC3B,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAChD,iBAAiB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/B,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,YAAY,IAAI,IAAI,IAAI,CAAC;AACzB,cAAc,OAAO,CAAC,GAAG,CAAC;AAC1B,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,WAAW,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACxB,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACpC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,WAAW,MAAM,MAAM,CAAC,CAAC;AACzB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9B,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACvB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAChB,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAC1C,MAAM,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAChD,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAChC,MAAM,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC/B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,IAAI;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,EAAE,SAAS;AAClB,QAAQ,IAAI,CAAC;AACb,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;AACjC,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,YAAY,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACvC,iBAAiB;AACjB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC;AACrB,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AACrC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/D,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,kBAAkB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,oBAAoB,CAAC,CAAC;AACtB,kBAAkB,KAAK,CAAC,GAAG,CAAC,GAAG;AAC/B,oBAAoB,IAAI,CAAC;AACzB,sBAAsB,CAAC,GAAG,CAAC;AAC3B,sBAAsB,CAAC,GAAG,CAAC;AAC3B,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,oBAAoB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACzC,yBAAyB;AACzB,sBAAsB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,sBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,sBAAsB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACpC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC5B,qBAAqB;AACrB,mBAAmB;AACnB,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACxB,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,MAAM;AACxB,gBAAgB;AAChB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,eAAe;AACf,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,aAAa;AACb,WAAW;AACX,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1E,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,MAAM,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,KAAK,CAAC,GAAG,CAAC;AAClB,UAAU,CAAC,EAAE;AACb,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,cAAc,CAAC;AACf,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,EAAE,GAAG,CAAC;AACpB,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,EAAE,SAAS;AACxB,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChC,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AACpC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/B,gBAAgB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAC1B,gBAAgB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAC5C,kBAAkB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AAChD,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC7B,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1C,iBAAiB;AACjB,eAAe;AACf,cAAc,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/B,cAAc,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AACzC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,gBAAgB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACnC,eAAe;AACf,cAAc,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,cAAc,IAAI,EAAE,GAAG,CAAC;AACxB,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,cAAc,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAC5C,mBAAmB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7C,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,cAAc,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE;AAC1D,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1B,cAAc,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AAC7C,gBAAgB,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC/B,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3B,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3B,kBAAkB,EAAE,GAAG,CAAC;AACxB,kBAAkB,EAAE,GAAG,CAAC;AACxB,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACzB,gBAAgB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3C,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,kBAAkB,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9B,kBAAkB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7B,kBAAkB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,kBAAkB,CAAC,EAAE;AACrB,oBAAoB,IAAI,EAAE;AAC1B,sBAAsB,EAAE,GAAG,CAAC;AAC5B,sBAAsB,EAAE,GAAG,CAAC;AAC5B,sBAAsB,EAAE,GAAG,EAAE;AAC7B,sBAAsB,EAAE,GAAG,EAAE;AAC7B,sBAAsB,EAAE,GAAG,CAAC;AAC5B,sBAAsB,EAAE,GAAG,CAAC;AAC5B,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/B,sBAAsB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,oBAAoB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,oBAAoB,IAAI,EAAE,EAAE;AAC5B,sBAAsB,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;AAC3C,wBAAwB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrC,wBAAwB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,sBAAsB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,sBAAsB,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,qBAAqB,MAAM;AAC3B,sBAAsB,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACpC,wBAAwB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,sBAAsB,IAAI,EAAE,GAAG,EAAE,EAAE;AACnC,wBAAwB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,wBAAwB,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,wBAAwB,MAAM,CAAC,CAAC;AAChC,uBAAuB;AACvB,sBAAsB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,sBAAsB,IAAI,EAAE,GAAG,KAAK,CAAC;AACrC,wBAAwB,EAAE,GAAG,KAAK,CAAC;AACnC,wBAAwB,EAAE,GAAG,EAAE;AAC/B,wBAAwB,EAAE,GAAG,EAAE;AAC/B,wBAAwB,EAAE,GAAG,EAAE;AAC/B,wBAAwB,EAAE,GAAG,EAAE;AAC/B,wBAAwB,EAAE,GAAG,CAAC;AAC9B,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;AACjC,wBAAwB,EAAE,GAAG,CAAC;AAC9B,wBAAwB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,sBAAsB,CAAC,EAAE,SAAS;AAClC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1D,wBAAwB,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACtC,0BAA0B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,4BAA4B,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/C,0BAA0B,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/C,yBAAyB,MAAM,EAAE,GAAG,EAAE,CAAC;AACvC,wBAAwB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI;AACxD,0BAA0B,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,0BAA0B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1D,0BAA0B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,0BAA0B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;AAC5C,0BAA0B,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7E,+BAA+B;AAC/B,4BAA4B,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AAC7C,8BAA8B,EAAE,GAAG,EAAE,GAAG,EAAE;AAC1C,8BAA8B,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACzC,8BAA8B,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AACtD,4BAA4B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACtD;AACA,8BAA8B,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;AACjE,gCAAgC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9C,2BAA2B;AAC3B,yBAAyB;AACzB,wBAAwB,EAAE,GAAG,CAAC,CAAC;AAC/B,wBAAwB,MAAM,CAAC,CAAC;AAChC,uBAAuB;AACvB,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,sBAAsB,EAAE,GAAG,EAAE,CAAC;AAC9B,qBAAqB;AACrB,oBAAoB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,oBAAoB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACvC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC1B,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE;AAC/B,oBAAoB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,sBAAsB,EAAE,CAAC;AACzB,oBAAoB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAC7B,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAC3B,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,gBAAgB,EAAE;AAClB,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACzB,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAClD,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACpD,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC5C,oBAAoB,CAAC;AACrB,kBAAkB,CAAC,IAAI,EAAE;AACzB,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAChD,qBAAqB,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE;AAC3B,kBAAkB,IAAI,EAAE;AACxB,oBAAoB,EAAE,GAAG,EAAE,CAAC;AAC5B,kBAAkB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9C,oBAAoB,IAAI,EAAE,GAAG,EAAE;AAC/B,sBAAsB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,oBAAoB,GAAG,IAAI,EAAE,CAAC,KAAK;AACnC,yBAAyB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;AACnE,yBAAyB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAClC,yBAAyB,EAAE,CAAC,KAAK,GAAG,CAAC;AACrC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAC7C,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AACjE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChE,wBAAwB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACxB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACxB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,MAAM,CAAC,CAAC;AACtB,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,WAAW;AACX,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,IAAI,CAAC,CAAC,EAAE;AAChB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,MAAM,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG;AAC/C,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM,CAAC,CAAC;AACpB,WAAW;AACX,SAAS,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,EAAE,GAAG,CAAC;AAClB,UAAU,EAAE,GAAG,CAAC;AAChB,UAAU,EAAE,GAAG,CAAC;AAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AACnB,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3B,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,EAAE;AACf,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACpB,UAAU,MAAM,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE;AACvB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,MAAM,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,CAAC;AAChB,OAAO;AACP,MAAM,CAAC;AACP,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACnC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;AACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC1B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,EAAE,SAAS;AAClB,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAChC,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC/B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,MAAM,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAClB,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9E,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAElB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACrB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/D,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;AACvB,MAAM,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC;AAChC,MAAM,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC;AACjC,MAAM,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAC;AACpC,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACrB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxG,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACvB,MAAM,IAAI,IAAI,CAAC;AACf,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5E,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;AAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACrB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACrD,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;AACrE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;AAC1D,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE;AAChB,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1D,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AACnD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AACnD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChB,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE;AAChB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,OAAO,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAC;AAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACxB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,OAAO;AACP,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3B,WAAW;AACX,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAChE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,SAAS;AACT,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE;AAClB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AAC1B,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,UAAU,SAAS;AACnB,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACpD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9B,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAChC,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACnC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,OAAO;AACP,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,UAAU,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;AAChE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5B,UAAU,IAAI,CAAC,GAAG,CAAC;AACnB,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAChC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,aAAa;AACb,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,SAAS,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AACvB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACrC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,OAAO;AACP,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAChC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,CAAC;AACZ,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/B,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;AACjB,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE;AACpB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACpC,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,cAAc,IAAI,CAAC,CAAC;AACpB,cAAc,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,gBAAgB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AAClD,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,eAAe;AACf,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,aAAa;AACb,WAAW;AACX,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACpE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,0CAA0C,CAAC,CAAC;AAC/E,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;AACpC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAChC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAChC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AAClC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AAC5B,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;AACvB,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;AACvB,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,eAAe;AACf,YAAY,IAAI,CAAC;AACjB,cAAc,CAAC;AACf,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACnC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,EAAE,EAAE;AACtB,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAClC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,cAAc,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,mBAAmB;AACnB,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,gBAAgB,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,eAAe;AACf,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAC9B,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACpC,cAAc,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACxC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5B,cAAc,CAAC,KAAK,CAAC,CAAC;AACtB,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACvC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,cAAc,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAgB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACtC,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9B,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,eAAe;AACf,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAClC,aAAa;AACb,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACxC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,oCAAoC,CAAC,CAAC;AACzE,SAAS;AACT,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACrB,UAAU,CAAC,EAAE;AACb,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,CAAC,EAAE;AACpB,cAAc,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACzE,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAChD,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC;AAC1B,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/C,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjD,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,uBAAuB;AACvB,oBAAoB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9B,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9B,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC/B,oBAAoB,CAAC,GAAG,CAAC;AACzB,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,oBAAoB,CAAC,GAAG,CAAC;AACzB,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,mBAAmB;AACnB,eAAe;AACf,YAAY,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC5C,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE;AAC/B,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACzB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,cAAc,CAAC;AACf,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACjC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACjC,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC9B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,mBAAmB,CAAC,CAAC,IAAI,CAAC;AAC1B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,cAAc;AACd,gBAAgB,IAAI,IAAI,CAAC,CAAC,EAAE;AAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM;AAC/B,gBAAgB,CAAC,GAAG,CAAC;AACrB,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1C,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3B,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/C,gBAAgB;AAChB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;AAC5D,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,cAAc,CAAC,GAAG,CAAC;AACnB,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACjC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACzB,cAAc,CAAC;AACf,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpD,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,WAAW;AACX,QAAQ,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClD,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9B,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;AAC5E,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACnC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACrB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACzB,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,aAAa,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5B,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACrC,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9C,cAAc,IAAI,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAClD,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrD,eAAe,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;AACxB,QAAQ,IAAI,CAAC,EAAE;AACf,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAClC,UAAU,CAAC,EAAE;AACb,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;AACxB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACtD,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,YAAY,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACtE,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,iBAAiB;AACjB,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;AAC5B,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,gBAAgB,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE;AAClC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;AACxE,kBAAkB,MAAM,CAAC,CAAC;AAC1B,iBAAiB;AACjB,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,eAAe;AACf,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACnC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AAC1C,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5B,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,IAAI,GAAG,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5B,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5B,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3B,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1B,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,aAAa;AACb,WAAW;AACX,UAAU,IAAI,CAAC,EAAE;AACjB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACxB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACxB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,YAAY,IAAI,CAAC,EAAE,EAAE;AACrB,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzE,cAAc,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5C,gBAAgB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACnE,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,gBAAgB,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9D,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,gBAAgB,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5D,cAAc,EAAE,GAAG,CAAC,CAAC;AACrB,aAAa;AACb,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,WAAW,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,SAAS;AACT,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3D,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,EAAE,CAAC;AACZ,OAAO;AACP,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAChC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACzB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACzD,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,CAAC,EAAE;AACb,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACpC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACrC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,OAAO;AACP,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAC7B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACpB,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,UAAU,CAAC,CAAC;AACZ,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,CAAC,IAAI,EAAE,CAAC;AAChB,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,EAAE;AAChB,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACpB,QAAQ,CAAC,GAAG,IAAI,UAAU,CAAC;AAC3B,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,SAAS,CAAC;AACV,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,KAAK,CAAC,CAAC;AACd,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACvE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;AAClB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC;AACf,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,MAAM,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM;AACN,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,QAAQ;AACR,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACpD,UAAU,CAAC;AACX,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI;AACrC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,UAAU,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,eAAe;AACf,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AACpC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AACpC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,WAAW;AACX,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI;AACrC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,UAAU,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,eAAe;AACf,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,WAAW;AACX,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC;AAClC,MAAM,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACrB,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACrB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,WAAW;AACX,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACvE,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,WAAW;AACX,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,CAAC;AACZ,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9B,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG;AACtE,aAAa,CAAC,GAAG,CAAC;AAClB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACpD,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;AACjB,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE;AAC1B,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AAC1B,UAAU,IAAI,CAAC,CAAC;AAChB,UAAU,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE;AAC3B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;AAC/B,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;AACrB,YAAY,IAAI,IAAI,CAAC,CAAC,EAAE;AACxB,iBAAiB,CAAC,GAAG,CAAC;AACtB,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,IAAI,CAAC,CAAC,EAAE;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AACnD,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,iBAAiB;AACjB,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/D;AACA,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,iBAAiB;AACjB,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAC1B,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE;AACxB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE;AACxB,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;AACvB,eAAe,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AAChC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAClC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC1B,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC1B,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,cAAc,CAAC,CAAC,EAAE;AAClB;AACA,cAAc,CAAC,EAAE;AACjB,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACzC,gBAAgB,CAAC,EAAE,SAAS;AAC5B,kBAAkB,IAAI,IAAI,IAAI,CAAC,EAAE;AACjC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,MAAM,CAAC,CAAC;AAC5B,mBAAmB;AACnB,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC/B,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3B,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,kBAAkB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAChC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,uBAAuB,CAAC,CAAC,EAAE,GAAG,IAAI;AAClC,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/B,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/B,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,kBAAkB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACxB,kBAAkB,MAAM,CAAC,CAAC;AAC1B,iBAAiB;AACjB,gBAAgB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,eAAe;AACf,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB,WAAW;AACX,UAAU,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,EAAE;AACX,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;AACzB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,cAAc,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACxD,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,mBAAmB,CAAC,GAAG,CAAC;AACxB,mBAAmB,CAAC,GAAG,CAAC;AACxB,mBAAmB,CAAC,IAAI,CAAC;AACzB,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B;AACA,cAAc,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACpC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,WAAW,MAAM;AACjB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,iBAAiB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG;AAC3C,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC;AACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,cAAc,CAAC,EAAE,SAAS;AAC1B,gBAAgB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACxC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC/B,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,kBAAkB,IAAI,GAAG,GAAG,CAAC;AAC7B,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACjC,sBAAsB,EAAE,CAAC;AACzB,sBAAsB,EAAE,CAAC;AACzB,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,uBAAuB,IAAI,GAAG,GAAG,CAAC,EAAE;AACpC,oBAAoB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,oBAAoB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC9C,sBAAsB,IAAI,CAAC,CAAC;AAC5B,sBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E,qBAAqB,MAAM;AAC3B,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC5B,sBAAsB,MAAM,CAAC,CAAC;AAC9B,qBAAqB;AACrB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3B,oBAAoB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AACvC,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,mBAAmB,MAAM;AACzB,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,MAAM,CAAC,CAAC;AAC5B,mBAAmB;AACnB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,iBAAiB;AACjB,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,aAAa,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,CAAC,EAAE;AACpB,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,MAAM,CAAC,CAAC;AACtB,aAAa;AACb,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACnC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAC5B,QAAQ;AACR,UAAU,CAAC,CAAC,EAAE;AACd,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3E;AACA,UAAU,OAAO,KAAK,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC;AAC1D,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI;AACxB,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,UAAU,CAAC,GAAG,CAAC;AACf,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,UAAU,CAAC,CAAC;AACZ,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,UAAU,GAAG,IAAI,CAAC;AAClB,aAAa,CAAC,CAAC,IAAI,KAAK;AACxB,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5D,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5D,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI;AACxB,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,CAAC,GAAG,IAAI,GAAG,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACnD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG;AACvD,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,MAAM,IAAI,CAAC,GAAG,GAAG;AACjB,QAAQ,CAAC;AACT,QAAQ,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,SAAS;AACT,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5E,QAAQ,IAAI,CAAC;AACb,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AAC1C,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC;AACjB,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC;AACzC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACzC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACzC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACrC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,UAAU,IAAI,IAAI,CAAC;AACnB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3E,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC;AACb,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC;AACzC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/D,UAAU,IAAI,IAAI,CAAC;AACnB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC;AAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,EAAE,GAAG;AAClB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACnD,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,OAAO,EAAE;AACf,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI;AAC1E,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AACpC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7C,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrD,aAAa,CAAC,IAAI,CAAC;AACnB,YAAY,EAAE,CAAC;AACf,YAAY,EAAE,CAAC;AACf,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC;AACd,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,UAAU,MAAM;AAChB,QAAQ,KAAK,CAAC;AACd,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,UAAU,MAAM;AAChB,QAAQ,KAAK,CAAC;AACd,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;AACvB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC;AACX,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AAC9D,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AACpC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAClC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAChF,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACtD,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACtB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC;AACb,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACtC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE;AAClB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC9B,UAAU,CAAC,GAAG,CAAC;AACf,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1B,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAChC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AAC1C,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,SAAS,MAAM,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACpB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AACvC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AACrC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9B,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AAChC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACrC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,MAAM,CAAC,EAAE;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrB,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;AAChD,UAAU,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE;AACvC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM,CAAC,CAAC;AACpB,WAAW;AACX,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,UAAU,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;AACxC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM,CAAC,CAAC;AACpB,WAAW;AACX,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACjC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM,CAAC,CAAC;AACpB,WAAW;AACX,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,EAAE;AACX,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,IAAI,CAAC,GAAG,CAAC;AACnB,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,eAAe;AACf,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;AACtC,cAAc,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,cAAc,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3C,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACvC,cAAc,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE;AACvC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,WAAW;AACX,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AACjC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;AAC5D,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,UAAU,CAAC,EAAE;AACb,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvB,YAAY,CAAC,GAAG,EAAE,CAAC;AACnB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACzB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxB,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;AAC/B,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,cAAc,IAAI,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,cAAc,IAAI,UAAU,GAAG,CAAC,EAAE;AAClC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAClC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE;AAC1D,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,CAAC,CAAC;AACxB,eAAe;AACf,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3E,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,aAAa;AACb,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;AAC5B,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,QAAQ,CAAC,EAAE;AACX,WAAW,CAAC,CAAC,GAAG,CAAC;AACjB,WAAW,CAAC,GAAG,CAAC;AAChB,WAAW,CAAC,GAAG,CAAC;AAChB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;AACnB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;AACnB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;AAChC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;AAChC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACtB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB;AACA,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,aAAa;AACb,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE;AACvC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,MAAM,CAAC,CAAC;AACtB,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACnC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,MAAM,CAAC,CAAC;AACtB,aAAa;AACb,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,WAAW;AACX,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;AAC1B,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACxC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE;AAClB,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE;AACrB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,eAAe,CAAC,GAAG,CAAC;AACpB,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,eAAe,CAAC,GAAG,IAAI,EAAE,EAAE;AAC3B,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,SAAS,MAAM;AACf,UAAU,IAAI,EAAE,GAAG,CAAC,EAAE;AACtB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrD,eAAe,CAAC,GAAG,CAAC;AACpB,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACvD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACvD,cAAc,CAAC,GAAG,CAAC;AACnB,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,cAAc,CAAC,CAAC;AAChB,cAAc,CAAC,CAAC;AAChB,mBAAmB,CAAC,GAAG,CAAC;AACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpD,QAAQ,IAAI,IAAI,CAAC;AACjB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,UAAU,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;AACjE,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,UAAU,CAAC;AACX,UAAU,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,CAAC;AACb,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnC,MAAM;AACN,QAAQ,CAAC,CAAC,EAAE;AACZ,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAClB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;AACjB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAChB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrE;AACA,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,OAAO;AACP,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC/B,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9E,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE;AACnB,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9B,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACpB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,OAAO;AACP,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACnB,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM;AACvB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAChC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACvC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACvC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE;AAClB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACtB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1E,YAAY,OAAO,CAAC,CAAC;AACrB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,SAAS;AACT,OAAO;AACP,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,EAAE;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACxB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5D,aAAa;AACb,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE;AACzC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,YAAY,EAAE,GAAG,CAAC;AAClB,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,IAAI,IAAI,CAAC,EAAE;AAC3B,cAAc,CAAC,GAAG,CAAC,CAAC;AACpB,cAAc,MAAM,CAAC,CAAC;AACtB,aAAa;AACb,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,YAAY,EAAE,GAAG,CAAC;AAClB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;AAC9B,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5B,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5B,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACzB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,WAAW;AACX,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACtB,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACvB,UAAU,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC/B,YAAY,IAAI,EAAE,GAAG,CAAC;AACtB,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;AAC3B,iBAAiB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI;AAC/C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,iBAAiB;AACjB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,cAAc,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3C,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;AAChC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,aAAa;AACb,eAAe,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3B,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,EAAE;AACf,MAAM,EAAE,GAAG;AACX,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,OAAO;AACP,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,EAAE,GAAG,CAAC;AACZ,MAAM,EAAE,GAAG;AACX,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAA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,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX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AAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,SAAS;AACT,QAAQ;AACR,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,SAAS;AACT,QAAQ;AACR,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,SAAS;AACT,QAAQ;AACR,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,WAAW;AACX,UAAU;AACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnE,YAAY,C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AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;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"}
