(function (xa, ha) { "function" === typeof define && define.amd ? define("pdfjs-dist/build/pdf.worker", ["exports"], ha) : "undefined" !== typeof exports ? ha(exports) : ha(xa.pdfjsDistBuildPdfWorker = {}) })(this, function (xa) { var ha = {}; (function () { (function (e, l) { l(e.pdfjsCoreArithmeticDecoder = {}) })(this, function (e) { var l = function () { function e(a, b, l) { this.data = a; this.bp = b; this.dataEnd = l; this.chigh = a[b]; this.clow = 0; this.byteIn(); this.chigh = this.chigh << 7 & 65535 | this.clow >> 9 & 127; this.clow = this.clow << 7 & 65535; this.ct -= 7; this.a = 32768 } var l = [{ qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 }, { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 }, { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 }, { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 }, { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 }, { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 }, { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 }, { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 }, { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 }, { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 }, { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 }, { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 }, { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 }, { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 }, { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 }, { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 }, { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 }, { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 }, { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 }, { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 }, { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 }, { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 }, { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 }, { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 }, { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 }, { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 }, { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 }, { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 }, { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 }, { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 }, { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 }, { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 }, { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 }, { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 }, { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 }, { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 }, { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 }, { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 }, { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 }, { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 }, { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 }, { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 }, { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 }, { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 }, { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 }, { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 }, { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 }]; e.prototype = { byteIn: function () { var a = this.data, b = this.bp; 255 === a[b] ? 143 < a[b + 1] ? (this.clow += 65280, this.ct = 8) : (b++, this.clow += a[b] << 9, this.ct = 7, this.bp = b) : (b++, this.clow += b < this.dataEnd ? a[b] << 8 : 65280, this.ct = 8, this.bp = b); 65535 < this.clow && (this.chigh += this.clow >> 16, this.clow &= 65535) }, readBit: function (a, b) { var e = a[b] >> 1, Q = a[b] & 1, e = l[e], k = e.qe, I = this.a - k; if (this.chigh < k) I < k ? (I = k, k = Q, e = e.nmps) : (I = k, k = 1 ^ Q, 1 === e.switchFlag && (Q = k), e = e.nlps); else { this.chigh -= k; if (0 !== (I & 32768)) return this.a = I, Q; I < k ? (k = 1 ^ Q, 1 === e.switchFlag && (Q = k), e = e.nlps) : (k = Q, e = e.nmps) } do 0 === this.ct && this.byteIn(), I <<= 1, this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1, this.clow = this.clow << 1 & 65535, this.ct--; while (0 === (I & 32768)); this.a = I; a[b] = e << 1 | Q; return k } }; return e }(); e.ArithmeticDecoder = l }); (function (e, l) { l(e.pdfjsCoreBidi = {}) })(this, function (e) { function l(a, b, e) { for (--e; b < e; ++b, --e) { var l = a[b]; a[b] = a[e]; a[e] = l } } function R(a, b, e) { return { str: a, dir: e ? "ttb" : b ? "ltr" : "rtl" } } var O = "BN BN BN BN BN BN BN BN BN S B S WS B BN BN BN BN BN BN BN BN BN BN BN BN BN BN B B B S WS ON ON ET ET ET ON ON ON ON ON ON CS ON CS ON EN EN EN EN EN EN EN EN EN EN ON ON ON ON ON ON ON L L L L L L L L L L L L L L L L L L L L L L L L L L ON ON ON ON ON ON L L L L L L L L L L L L L L L L L L L L L L L L L L ON ON ON ON BN BN BN BN BN BN B BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN BN CS ON ET ET ET ET ON ON ON ON L ON ON ON ON ON ET ET EN EN ON L ON ON ON EN L ON ON ON ON ON L L L L L L L L L L L L L L L L L L L L L L L ON L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L ON L L L L L L L L".split(" "), a = "AL AL AL AL AL AL AL AL AL AL AL AL CS AL ON ON NSM NSM NSM NSM NSM NSM AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM AL AL AL AL AL AL AL AN AN AN AN AN AN AN AN AN AN ET AN AN AL AL AL NSM AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM NSM ON NSM NSM NSM NSM AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL".split(" "), b = [], L = []; e.bidi = function (e, k, I) { var X = !0, N = e.length; if (0 === N || I) return R(e, X, I); b.length = N; L.length = N; var u = 0; for (I = 0; I < N; ++I) { b[I] = e.charAt(I); var G = e.charCodeAt(I), M = "L"; 255 >= G ? M = O[G] : 1424 <= G && 1524 >= G ? M = "R" : 1536 <= G && 1791 >= G ? M = a[G & 255] : 1792 <= G && 2220 >= G && (M = "AL"); "R" !== M && "AL" !== M && "AN" !== M || u++; L[I] = M } if (0 === u) return R(e, !0); -1 === k && (.3 > N / u ? (X = !0, k = 0) : (X = !1, k = 1)); e = []; for (I = 0; I < N; ++I) e[I] = k; u = k = 0 !== (k & 1) ? "R" : "L"; for (I = 0; I < N; ++I) "NSM" === L[I] ? L[I] = u : u = L[I]; u = k; for (I = 0; I < N; ++I) if (G = L[I], "EN" === G) L[I] = "AL" === u ? "AN" : "EN"; else if ("R" === G || "L" === G || "AL" === G) u = G; for (I = 0; I < N; ++I) G = L[I], "AL" === G && (L[I] = "R"); for (I = 1; I < N - 1; ++I) "ES" === L[I] && "EN" === L[I - 1] && "EN" === L[I + 1] && (L[I] = "EN"), "CS" !== L[I] || "EN" !== L[I - 1] && "AN" !== L[I - 1] || L[I + 1] !== L[I - 1] || (L[I] = L[I - 1]); for (I = 0; I < N; ++I) if ("EN" === L[I]) { for (u = I - 1; 0 <= u && "ET" === L[u]; --u) L[u] = "EN"; for (u = I + 1; u < N && "ET" === L[u]; --u) L[u] = "EN" } for (I = 0; I < N; ++I) if (G = L[I], "WS" === G || "ES" === G || "ET" === G || "CS" === G) L[I] = "ON"; u = k; for (I = 0; I < N; ++I) if (G = L[I], "EN" === G) L[I] = "L" === u ? "L" : "EN"; else if ("R" === G || "L" === G) u = G; for (I = 0; I < N; ++I) if ("ON" === L[I]) { a: for (u = I + 1, G = L.length; u < G; ++u) if ("ON" !== L[u]) break a; var K = k; 0 < I && (K = L[I - 1]); G = k; u + 1 < N && (G = L[u + 1]); "L" !== K && (K = "R"); "L" !== G && (G = "R"); if (K === G) for (G = L, M = u; I < M; ++I) G[I] = K; I = u - 1 } for (I = 0; I < N; ++I) "ON" === L[I] && (L[I] = k); for (I = 0; I < N; ++I) if (G = L[I], 0 === (e[I] & 1)) if ("R" === G) e[I] += 1; else { if ("AN" === G || "EN" === G) e[I] += 2 } else if ("L" === G || "AN" === G || "EN" === G) e[I] += 1; G = -1; k = 99; I = 0; for (N = e.length; I < N; ++I) u = e[I], G < u && (G = u), k > u && 0 !== (u & 1) && (k = u); for (u = G; u >= k; --u) { G = -1; I = 0; for (N = e.length; I < N; ++I) e[I] < u ? 0 <= G && (l(b, G, I), G = -1) : 0 > G && (G = I); 0 <= G && l(b, G, e.length) } I = 0; for (N = b.length; I < N; ++I) if (e = b[I], "<" === e || ">" === e) b[I] = ""; return R(b.join(""), X) } }); (function (e, l) { l(e.pdfjsCoreCharsets = {}) })(this, function (e) { e.ISOAdobeCharset = ".notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore quoteleft 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 braceleft bar braceright asciitilde exclamdown cent sterling fraction yen florin section currency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi fl endash dagger daggerdbl periodcentered paragraph bullet quotesinglbase quotedblbase quotedblright guillemotright ellipsis perthousand questiondown grave acute circumflex tilde macron breve dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash AE ordfeminine Lslash Oslash OE ordmasculine ae dotlessi lslash oslash oe germandbls onesuperior logicalnot mu trademark Eth onehalf plusminus Thorn onequarter divide brokenbar degree thorn threequarters twosuperior registered minus eth multiply threesuperior copyright Aacute Acircumflex Adieresis Agrave Aring Atilde Ccedilla Eacute Ecircumflex Edieresis Egrave Iacute Icircumflex Idieresis Igrave Ntilde Oacute Ocircumflex Odieresis Ograve Otilde Scaron Uacute Ucircumflex Udieresis Ugrave Yacute Ydieresis Zcaron aacute acircumflex adieresis agrave aring atilde ccedilla eacute ecircumflex edieresis egrave iacute icircumflex idieresis igrave ntilde oacute ocircumflex odieresis ograve otilde scaron uacute ucircumflex udieresis ugrave yacute ydieresis zcaron".split(" "); e.ExpertCharset = ".notdef space exclamsmall Hungarumlautsmall dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon commasuperior threequartersemdash periodsuperior questionsmall asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff fi fl ffi ffl parenleftinferior parenrightinferior Circumflexsmall hyphensuperior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall colonmonetary onefitted rupiah Tildesmall exclamdownsmall centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash hypheninferior Ogoneksmall Ringsmall Cedillasmall onequarter onehalf threequarters questiondownsmall oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior Agravesmall Aacutesmall Acircumflexsmall Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall".split(" "); e.ExpertSubsetCharset = ".notdef space dollaroldstyle dollarsuperior parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon commasuperior threequartersemdash periodsuperior asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff fi fl ffi ffl parenleftinferior parenrightinferior hyphensuperior colonmonetary onefitted rupiah centoldstyle figuredash hypheninferior onequarter onehalf threequarters oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior".split(" ") }); (function (e, l) { l(e.pdfjsCoreEncodings = {}) })(this, function (e) { var l = " space exclamsmall Hungarumlautsmall dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon commasuperior threequartersemdash periodsuperior questionsmall asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff fi fl ffi ffl parenleftinferior parenrightinferior Circumflexsmall hyphensuperior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall colonmonetary onefitted rupiah Tildesmall exclamdownsmall centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash hypheninferior Ogoneksmall Ringsmall Cedillasmall onequarter onehalf threequarters questiondownsmall oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior Agravesmall Aacutesmall Acircumflexsmall Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall".split(" "), R = " space exclamsmall Hungarumlautsmall centoldstyle dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon threequartersemdash questionsmall Ethsmall onequarter onehalf threequarters oneeighth threeeighths fiveeighths seveneighths onethird twothirds ff fi fl ffi ffl parenleftinferior parenrightinferior Circumflexsmall hypheninferior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall colonmonetary onefitted rupiah Tildesmall asuperior centsuperior Aacutesmall Agravesmall Acircumflexsmall Adieresissmall Atildesmall Aringsmall Ccedillasmall Eacutesmall Egravesmall Ecircumflexsmall Edieresissmall Iacutesmall Igravesmall Icircumflexsmall Idieresissmall Ntildesmall Oacutesmall Ogravesmall Ocircumflexsmall Odieresissmall Otildesmall Uacutesmall Ugravesmall Ucircumflexsmall Udieresissmall eightsuperior fourinferior threeinferior sixinferior eightinferior seveninferior Scaronsmall centinferior twoinferior Dieresissmall Caronsmall osuperior fiveinferior commainferior periodinferior Yacutesmall dollarinferior Thornsmall nineinferior zeroinferior Zcaronsmall AEsmall Oslashsmall questiondownsmall oneinferior Lslashsmall Cedillasmall OEsmall figuredash hyphensuperior exclamdownsmall Ydieresissmall onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior ninesuperior zerosuperior esuperior rsuperior tsuperior isuperior ssuperior dsuperior lsuperior Ogoneksmall Brevesmall Macronsmall bsuperior nsuperior msuperior commasuperior periodsuperior Dotaccentsmall Ringsmall".split(" "), O = " space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore grave 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 braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis space Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron".split(" "), a = " space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore quoteleft 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 braceleft bar braceright asciitilde exclamdown cent sterling fraction yen florin section currency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi fl endash dagger daggerdbl periodcentered paragraph bullet quotesinglbase quotedblbase quotedblright guillemotright ellipsis perthousand questiondown grave acute circumflex tilde macron breve dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash AE ordfeminine Lslash Oslash OE ordmasculine ae dotlessi lslash oslash oe germandbls".split(" "), b = " space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore grave 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 braceleft bar braceright asciitilde bullet Euro bullet quotesinglbase florin quotedblbase ellipsis dagger daggerdbl circumflex perthousand Scaron guilsinglleft OE bullet Zcaron bullet bullet quoteleft quoteright quotedblleft quotedblright bullet endash emdash tilde trademark scaron guilsinglright oe bullet zcaron Ydieresis space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph periodcentered cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis".split(" "), L = " space exclam universal numbersign existential percent ampersand suchthat parenleft parenright asteriskmath plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question congruent Alpha Beta Chi Delta Epsilon Phi Gamma Eta Iota theta1 Kappa Lambda Mu Nu Omicron Pi Theta Rho Sigma Tau Upsilon sigma1 Omega Xi Psi Zeta bracketleft therefore bracketright perpendicular underscore radicalex alpha beta chi delta epsilon phi gamma eta iota phi1 kappa lambda mu nu omicron pi theta rho sigma tau upsilon omega1 omega xi psi zeta braceleft bar braceright similar Euro Upsilon1 minute lessequal fraction infinity florin club diamond heart spade arrowboth arrowleft arrowup arrowright arrowdown degree plusminus second greaterequal multiply proportional partialdiff bullet divide notequal equivalence approxequal ellipsis arrowvertex arrowhorizex carriagereturn aleph Ifraktur Rfraktur weierstrass circlemultiply circleplus emptyset intersection union propersuperset reflexsuperset notsubset propersubset reflexsubset element notelement angle gradient registerserif copyrightserif trademarkserif product radical dotmath logicalnot logicaland logicalor arrowdblboth arrowdblleft arrowdblup arrowdblright arrowdbldown lozenge angleleft registersans copyrightsans trademarksans summation parenlefttp parenleftex parenleftbt bracketlefttp bracketleftex bracketleftbt bracelefttp braceleftmid braceleftbt braceex angleright integral integraltp integralex integralbt parenrighttp parenrightex parenrightbt bracketrighttp bracketrightex bracketrightbt bracerighttp bracerightmid bracerightbt".split(" "), Q = " space a1 a2 a202 a3 a4 a5 a119 a118 a117 a11 a12 a13 a14 a15 a16 a105 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a6 a7 a8 a9 a10 a29 a30 a31 a32 a33 a34 a35 a36 a37 a38 a39 a40 a41 a42 a43 a44 a45 a46 a47 a48 a49 a50 a51 a52 a53 a54 a55 a56 a57 a58 a59 a60 a61 a62 a63 a64 a65 a66 a67 a68 a69 a70 a71 a72 a73 a74 a203 a75 a204 a76 a77 a78 a79 a81 a82 a83 a84 a97 a98 a99 a100 a89 a90 a93 a94 a91 a92 a205 a85 a206 a86 a87 a88 a95 a96 a101 a102 a103 a104 a106 a107 a108 a112 a111 a110 a109 a120 a121 a122 a123 a124 a125 a126 a127 a128 a129 a130 a131 a132 a133 a134 a135 a136 a137 a138 a139 a140 a141 a142 a143 a144 a145 a146 a147 a148 a149 a150 a151 a152 a153 a154 a155 a156 a157 a158 a159 a160 a161 a163 a164 a196 a165 a192 a166 a167 a168 a169 a170 a171 a172 a173 a162 a174 a175 a176 a177 a178 a179 a193 a180 a199 a181 a200 a182 a201 a183 a184 a197 a185 a194 a198 a186 a195 a187 a188 a189 a190 a191".split(" "); e.WinAnsiEncoding = b; e.StandardEncoding = a; e.MacRomanEncoding = O; e.SymbolSetEncoding = L; e.ZapfDingbatsEncoding = Q; e.ExpertEncoding = l; e.getEncoding = function (k) { switch (k) { case "WinAnsiEncoding": return b; case "StandardEncoding": return a; case "MacRomanEncoding": return O; case "SymbolSetEncoding": return L; case "ZapfDingbatsEncoding": return Q; case "ExpertEncoding": return l; case "MacExpertEncoding": return R; default: return null } } }); (function (e, l) { l(e.pdfjsCoreJpg = {}) })(this, function (e) { var l = function () { function e() { } function l(a, b) { for (var e = 0, N = [], u, G, M = 16; 0 < M && !a[M - 1];) M--; N.push({ children: [], index: 0 }); var K = N[0], J; for (u = 0; u < M; u++) { for (G = 0; G < a[u]; G++) { K = N.pop(); for (K.children[K.index] = b[e]; 0 < K.index;) K = N.pop(); K.index++; for (N.push(K) ; N.length <= u;) N.push(J = { children: [], index: 0 }), K.children[K.index] = J.children, K = J; e++ } u + 1 < M && (N.push(J = { children: [], index: 0 }), K.children[K.index] = J.children, K = J) } return N[0].children } function a(a, b, e, l, u, G, M, K, J) { function v() { if (0 < d) return d--, m >> d & 1; m = a[b++]; if (255 === m) { var q = a[b++]; if (q) throw "unexpected marker: " + (m << 8 | q).toString(16); } d = 7; return m >>> 7 } function r(a) { for (; ;) { a = a[v()]; if ("number" === typeof a) return a; if ("object" !== typeof a) throw "invalid huffman sequence"; } } function P(a) { for (var b = 0; 0 < a;) b = b << 1 | v(), a--; return b } function H(a) { if (1 === a) return 1 === v() ? 1 : -1; var b = P(a); return b >= 1 << a - 1 ? b : b + (-1 << a) + 1 } function h(a, b) { var q = r(a.huffmanTableDC), q = 0 === q ? 0 : H(q); a.blockData[b] = a.pred += q; for (q = 1; 64 > q;) { var f = r(a.huffmanTableAC), w = f & 15, f = f >> 4; if (0 === w) { if (15 > f) break; q += 16 } else q += f, a.blockData[b + Q[q]] = H(w), q++ } } function c(a, b) { var q = r(a.huffmanTableDC), q = 0 === q ? 0 : H(q) << J; a.blockData[b] = a.pred += q } function C(a, b) { a.blockData[b] |= v() << J } function F(a, b) { if (0 < f) f--; else for (var q = G; q <= M;) { var w = r(a.huffmanTableAC), d = w & 15, w = w >> 4; if (0 === d) { if (15 > w) { f = P(w) + (1 << w) - 1; break } q += 16 } else q += w, a.blockData[b + Q[q]] = H(d) * (1 << J), q++ } } function n(a, b) { for (var d = G, m = 0, U; d <= M;) { U = Q[d]; switch (q) { case 0: m = r(a.huffmanTableAC); U = m & 15; m >>= 4; if (0 === U) 15 > m ? (f = P(m) + (1 << m), q = 4) : (m = 16, q = 1); else { if (1 !== U) throw "invalid ACn encoding"; w = H(U); q = m ? 2 : 3 } continue; case 1: case 2: a.blockData[b + U] ? a.blockData[b + U] += v() << J : (m--, 0 === m && (q = 2 === q ? 3 : 0)); break; case 3: a.blockData[b + U] ? a.blockData[b + U] += v() << J : (a.blockData[b + U] = w << J, q = 0); break; case 4: a.blockData[b + U] && (a.blockData[b + U] += v() << J) } d++ } 4 === q && (f--, 0 === f && (q = 0)) } var A = e.mcusPerLine, g = b, m = 0, d = 0, f = 0, q = 0, w, U = l.length, V, T, B, E, t; K = e.progressive ? 0 === G ? 0 === K ? c : C : 0 === K ? F : n : h; var x = 0; e = 1 === U ? l[0].blocksPerLine * l[0].blocksPerColumn : A * e.mcusPerColumn; u || (u = e); for (var S, z; x < e;) { for (T = 0; T < U; T++) l[T].pred = 0; f = 0; if (1 === U) for (V = l[0], t = 0; t < u; t++) K(V, 64 * ((V.blocksPerLine + 1) * (x / V.blocksPerLine | 0) + x % V.blocksPerLine)), x++; else for (t = 0; t < u; t++) { for (T = 0; T < U; T++) for (V = l[T], S = V.h, z = V.v, B = 0; B < z; B++) for (E = 0; E < S; E++) K(V, 64 * ((V.blocksPerLine + 1) * ((x / A | 0) * V.v + B) + (x % A * V.h + E))); x++ } d = 0; V = a[b] << 8 | a[b + 1]; if (65280 >= V) throw "marker was not found"; if (65488 <= V && 65495 >= V) b += 2; else break } return b - g } function b(a, b) { for (var e = b.blocksPerLine, l = b.blocksPerColumn, u = new Int16Array(64), G = 0; G < l; G++) for (var M = 0; M < e; M++) { for (var K = 64 * ((b.blocksPerLine + 1) * G + M), J = u, v = b.quantizationTable, r = b.blockData, P = void 0, H = void 0, h = void 0, c = void 0, C = void 0, F = void 0, n = void 0, A = void 0, g = void 0, m = A = void 0, d = n = H = F = void 0, f = void 0, g = void 0, q = 0; 64 > q; q += 8) g = r[K + q], A = r[K + q + 1], m = r[K + q + 2], F = r[K + q + 3], H = r[K + q + 4], n = r[K + q + 5], d = r[K + q + 6], f = r[K + q + 7], g *= v[q], 0 === (A | m | F | H | n | d | f) ? (g = 5793 * g + 512 >> 10, J[q] = g, J[q + 1] = g, J[q + 2] = g, J[q + 3] = g, J[q + 4] = g, J[q + 5] = g, J[q + 6] = g, J[q + 7] = g) : (A *= v[q + 1], m *= v[q + 2], F *= v[q + 3], H *= v[q + 4], n *= v[q + 5], d *= v[q + 6], f *= v[q + 7], P = 5793 * g + 128 >> 8, H = 5793 * H + 128 >> 8, h = m, c = d, C = 2896 * (A - f) + 128 >> 8, A = 2896 * (A + f) + 128 >> 8, F <<= 4, n <<= 4, P = P + H + 1 >> 1, H = P - H, g = 3784 * h + 1567 * c + 128 >> 8, h = 1567 * h - 3784 * c + 128 >> 8, c = g, C = C + n + 1 >> 1, n = C - n, A = A + F + 1 >> 1, F = A - F, P = P + c + 1 >> 1, c = P - c, H = H + h + 1 >> 1, h = H - h, g = 2276 * C + 3406 * A + 2048 >> 12, C = 3406 * C - 2276 * A + 2048 >> 12, A = g, g = 799 * F + 4017 * n + 2048 >> 12, F = 4017 * F - 799 * n + 2048 >> 12, n = g, J[q] = P + A, J[q + 7] = P - A, J[q + 1] = H + n, J[q + 6] = H - n, J[q + 2] = h + F, J[q + 5] = h - F, J[q + 3] = c + C, J[q + 4] = c - C); for (v = 0; 8 > v; ++v) g = J[v], A = J[v + 8], m = J[v + 16], F = J[v + 24], H = J[v + 32], n = J[v + 40], d = J[v + 48], f = J[v + 56], 0 === (A | m | F | H | n | d | f) ? (g = 5793 * g + 8192 >> 14, g = -2040 > g ? 0 : 2024 <= g ? 255 : g + 2056 >> 4, r[K + v] = g, r[K + v + 8] = g, r[K + v + 16] = g, r[K + v + 24] = g, r[K + v + 32] = g, r[K + v + 40] = g, r[K + v + 48] = g, r[K + v + 56] = g) : (P = 5793 * g + 2048 >> 12, H = 5793 * H + 2048 >> 12, h = m, c = d, C = 2896 * (A - f) + 2048 >> 12, A = 2896 * (A + f) + 2048 >> 12, P = (P + H + 1 >> 1) + 4112, H = P - H, g = 3784 * h + 1567 * c + 2048 >> 12, h = 1567 * h - 3784 * c + 2048 >> 12, c = g, C = C + n + 1 >> 1, n = C - n, A = A + F + 1 >> 1, F = A - F, P = P + c + 1 >> 1, c = P - c, H = H + h + 1 >> 1, h = H - h, g = 2276 * C + 3406 * A + 2048 >> 12, C = 3406 * C - 2276 * A + 2048 >> 12, A = g, g = 799 * F + 4017 * n + 2048 >> 12, F = 4017 * F - 799 * n + 2048 >> 12, n = g, g = P + A, f = P - A, A = H + n, d = H - n, m = h + F, n = h - F, F = c + C, H = c - C, g = 16 > g ? 0 : 4080 <= g ? 255 : g >> 4, A = 16 > A ? 0 : 4080 <= A ? 255 : A >> 4, m = 16 > m ? 0 : 4080 <= m ? 255 : m >> 4, F = 16 > F ? 0 : 4080 <= F ? 255 : F >> 4, H = 16 > H ? 0 : 4080 <= H ? 255 : H >> 4, n = 16 > n ? 0 : 4080 <= n ? 255 : n >> 4, d = 16 > d ? 0 : 4080 <= d ? 255 : d >> 4, f = 16 > f ? 0 : 4080 <= f ? 255 : f >> 4, r[K + v] = g, r[K + v + 8] = A, r[K + v + 16] = m, r[K + v + 24] = F, r[K + v + 32] = H, r[K + v + 40] = n, r[K + v + 48] = d, r[K + v + 56] = f) } return b.blockData } function L(a) { return 0 >= a ? 0 : 255 <= a ? 255 : a } var Q = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]); e.prototype = { parse: function (k) { function e() { var a = k[u] << 8 | k[u + 1]; u += 2; return a } function L() { var a = e(), a = k.subarray(u, u + a - 2); u += a.length; return a } function N(a) { for (var b = Math.ceil(a.samplesPerLine / 8 / a.maxH), f = Math.ceil(a.scanLines / 8 / a.maxV), q = 0; q < a.components.length; q++) { g = a.components[q]; var w = Math.ceil(Math.ceil(a.samplesPerLine / 8) * g.h / a.maxH), U = Math.ceil(Math.ceil(a.scanLines / 8) * g.v / a.maxV); g.blockData = new Int16Array(64 * f * g.v * (b * g.h + 1)); g.blocksPerLine = w; g.blocksPerColumn = U } a.mcusPerLine = b; a.mcusPerColumn = f } var u = 0, G = null, M = null, K, J, v = [], r = [], P = [], H = e(); if (65496 !== H) throw "SOI not found"; for (H = e() ; 65497 !== H;) { var h, c; switch (H) { case 65504: case 65505: case 65506: case 65507: case 65508: case 65509: case 65510: case 65511: case 65512: case 65513: case 65514: case 65515: case 65516: case 65517: case 65518: case 65519: case 65534: h = L(); 65504 === H && 74 === h[0] && 70 === h[1] && 73 === h[2] && 70 === h[3] && 0 === h[4] && (G = { version: { major: h[5], minor: h[6] }, densityUnits: h[7], xDensity: h[8] << 8 | h[9], yDensity: h[10] << 8 | h[11], thumbWidth: h[12], thumbHeight: h[13], thumbData: h.subarray(14, 14 + 3 * h[12] * h[13]) }); 65518 === H && 65 === h[0] && 100 === h[1] && 111 === h[2] && 98 === h[3] && 101 === h[4] && (M = { version: h[5] << 8 | h[6], flags0: h[7] << 8 | h[8], flags1: h[9] << 8 | h[10], transformCode: h[11] }); break; case 65499: for (var H = e() + u - 2, C; u < H;) { var F = k[u++], n = new Uint16Array(64); if (0 === F >> 4) for (h = 0; 64 > h; h++) C = Q[h], n[C] = k[u++]; else if (1 === F >> 4) for (h = 0; 64 > h; h++) C = Q[h], n[C] = e(); else throw "DQT: invalid table spec"; v[F & 15] = n } break; case 65472: case 65473: case 65474: if (K) throw "Only single frame JPEGs supported"; e(); K = {}; K.extended = 65473 === H; K.progressive = 65474 === H; K.precision = k[u++]; K.scanLines = e(); K.samplesPerLine = e(); K.components = []; K.componentIds = {}; h = k[u++]; for (H = n = F = 0; H < h; H++) { C = k[u]; c = k[u + 1] >> 4; var A = k[u + 1] & 15; F < c && (F = c); n < A && (n = A); c = K.components.push({ h: c, v: A, quantizationTable: v[k[u + 2]] }); K.componentIds[C] = c - 1; u += 3 } K.maxH = F; K.maxV = n; N(K); break; case 65476: C = e(); for (H = 2; H < C;) { F = k[u++]; n = new Uint8Array(16); for (h = c = 0; 16 > h; h++, u++) c += n[h] = k[u]; A = new Uint8Array(c); for (h = 0; h < c; h++, u++) A[h] = k[u]; H += 17 + c; (0 === F >> 4 ? P : r)[F & 15] = l(n, A) } break; case 65501: e(); J = e(); break; case 65498: e(); C = k[u++]; h = []; for (var g, H = 0; H < C; H++) F = K.componentIds[k[u++]], g = K.components[F], F = k[u++], g.huffmanTableDC = P[F >> 4], g.huffmanTableAC = r[F & 15], h.push(g); H = k[u++]; C = k[u++]; F = k[u++]; H = a(k, u, K, h, J, H, C, F >> 4, F & 15); u += H; break; case 65535: 255 !== k[u] && u--; break; default: if (255 === k[u - 3] && 192 <= k[u - 2] && 254 >= k[u - 2]) u -= 3; else throw "unknown JPEG marker " + H.toString(16); } H = e() } this.width = K.samplesPerLine; this.height = K.scanLines; this.jfif = G; this.adobe = M; this.components = []; for (H = 0; H < K.components.length; H++) g = K.components[H], this.components.push({ output: b(K, g), scaleX: g.h / K.maxH, scaleY: g.v / K.maxV, blocksPerLine: g.blocksPerLine, blocksPerColumn: g.blocksPerColumn }); this.numComponents = this.components.length }, _getLinearizedBlockData: function (a, b) { var e = this.width / a, l = this.height / b, u, G, M, K, J, v, r = 0, P, H = this.components.length, h = a * b * H, c = new Uint8Array(h), C = new Uint32Array(a); for (v = 0; v < H; v++) { u = this.components[v]; G = u.scaleX * e; M = u.scaleY * l; r = v; P = u.output; K = u.blocksPerLine + 1 << 3; for (J = 0; J < a; J++) u = 0 | J * G, C[J] = (u & 4294967288) << 3 | u & 7; for (G = 0; G < b; G++) for (u = 0 | G * M, u = K * (u & 4294967288) | (u & 7) << 3, J = 0; J < a; J++) c[r] = P[u + C[J]], r += H } if (l = this.decodeTransform) for (v = 0; v < h;) for (e = u = 0; u < H; u++, v++, e += 2) c[v] = (c[v] * l[e] >> 8) + l[e + 1]; return c }, _isColorConversionNeeded: function () { return this.adobe && this.adobe.transformCode ? !0 : 3 === this.numComponents ? !0 : !1 }, _convertYccToRgb: function (a) { for (var b, e, l, u = 0, G = a.length; u < G; u += 3) b = a[u], e = a[u + 1], l = a[u + 2], a[u] = L(b - 179.456 + 1.402 * l), a[u + 1] = L(b + 135.459 - .344 * e - .714 * l), a[u + 2] = L(b - 226.816 + 1.772 * e); return a }, _convertYcckToRgb: function (a) { for (var b, e, l, u, G = 0, M = 0, K = a.length; M < K; M += 4) { b = a[M]; e = a[M + 1]; l = a[M + 2]; u = a[M + 3]; var J = -122.67195406894 + e * (-6.60635669420364E-5 * e + 4.37130475926232E-4 * l - 5.4080610064599E-5 * b + 4.8449797120281E-4 * u - .154362151871126) + l * (-9.57964378445773E-4 * l + 8.17076911346625E-4 * b - .00477271405408747 * u + 1.53380253221734) + b * (9.61250184130688E-4 * b - .00266257332283933 * u + .48357088451265) + u * (-3.36197177618394E-4 * u + .484791561490776), v = 107.268039397724 + e * (2.19927104525741E-5 * e - 6.40992018297945E-4 * l + 6.59397001245577E-4 * b + 4.26105652938837E-4 * u - .176491792462875) + l * (-7.78269941513683E-4 * l + .00130872261408275 * b + 7.70482631801132E-4 * u - .151051492775562) + b * (.00126935368114843 * b - .00265090189010898 * u + .25802910206845) + u * (-3.18913117588328E-4 * u - .213742400323665); b = -20.810012546947 + e * (-5.70115196973677E-4 * e - 2.63409051004589E-5 * l + .0020741088115012 * b - .00288260236853442 * u + .814272968359295) + l * (-1.53496057440975E-5 * l - 1.32689043961446E-4 * b + 5.60833691242812E-4 * u - .195152027534049) + b * (.00174418132927582 * b - .00255243321439347 * u + .116935020465145) + u * (-3.43531996510555E-4 * u + .24165260232407); a[G++] = L(J); a[G++] = L(v); a[G++] = L(b) } return a }, _convertYcckToCmyk: function (a) { for (var b, e, l, u = 0, G = a.length; u < G; u += 4) b = a[u], e = a[u + 1], l = a[u + 2], a[u] = L(434.456 - b - 1.402 * l), a[u + 1] = L(119.541 - b + .344 * e + .714 * l), a[u + 2] = L(481.816 - b - 1.772 * e); return a }, _convertCmykToRgb: function (a) { for (var b, e, l, u, G = 0, M = 1 / 255 / 255, K = 0, J = a.length; K < J; K += 4) { b = a[K]; e = a[K + 1]; l = a[K + 2]; u = a[K + 3]; var v = b * (-4.387332384609988 * b + 54.48615194189176 * e + 18.82290502165302 * l + 212.25662451639585 * u - 72734.4411664936) + e * (1.7149763477362134 * e - 5.6096736904047315 * l - 17.873870861415444 * u - 1401.7366389350734) + l * (-2.5217340131683033 * l - 21.248923337353073 * u + 4465.541406466231) - u * (21.86122147463605 * u + 48317.86113160301), r = b * (8.841041422036149 * b + 60.118027045597366 * e + 6.871425592049007 * l + 31.159100130055922 * u - 20220.756542821975) + e * (-15.310361306967817 * e + 17.575251261109482 * l + 131.35250912493976 * u - 48691.05921601825) + l * (4.444339102852739 * l + 9.8632861493405 * u - 6341.191035517494) - u * (20.737325471181034 * u + 47890.15695978492); b = b * (.8842522430003296 * b + 8.078677503112928 * e + 30.89978309703729 * l - .23883238689178934 * u - 3616.812083916688) + e * (10.49593273432072 * e + 63.02378494754052 * l + 50.606957656360734 * u - 28620.90484698408) + l * (.03296041114873217 * l + 115.60384449646641 * u - 49363.43385999684) - u * (22.33816807309886 * u + 45932.16563550634); a[G++] = 0 <= v ? 255 : -16581375 >= v ? 0 : 255 + v * M | 0; a[G++] = 0 <= r ? 255 : -16581375 >= r ? 0 : 255 + r * M | 0; a[G++] = 0 <= b ? 255 : -16581375 >= b ? 0 : 255 + b * M | 0 } return a }, getData: function (a, b, e) { if (4 < this.numComponents) throw "Unsupported color mode"; a = this._getLinearizedBlockData(a, b); if (1 === this.numComponents && e) { e = a.length; b = new Uint8Array(3 * e); for (var l = 0, u = 0; u < e; u++) { var G = a[u]; b[l++] = G; b[l++] = G; b[l++] = G } return b } if (3 === this.numComponents) return this._convertYccToRgb(a); if (4 === this.numComponents) { if (this._isColorConversionNeeded()) return e ? this._convertYcckToRgb(a) : this._convertYcckToCmyk(a); if (e) return this._convertCmykToRgb(a) } return a } }; return e }(); e.JpegImage = l }); (function (e, l) { l(e.pdfjsSharedUtil = {}) })(this, function (e) { function l(a) { u >= N.warnings && console.log("Warning: " + a) } function R(a) { u >= N.errors && (console.log("Error: " + a), console.log(O())); throw Error(a); } function O() { try { throw Error(); } catch (a) { return a.stack ? a.stack.split("\n").slice(2).join("\n") : "" } } function a(a, b) { a || R(b) } function b(b) { a("string" === typeof b, "Invalid argument for stringToBytes"); for (var d = b.length, f = new Uint8Array(d), q = 0; q < d; ++q) f[q] = b.charCodeAt(q) & 255; return f } function L(b) { if (void 0 !== b.length) return b.length; a(void 0 !== b.byteLength); return b.byteLength } function Q(a) { return "number" === typeof a && (a | 0) === a } function k() { var a = {}; a.promise = new Promise(function (b, f) { a.resolve = b; a.reject = f }); return a } function I(a, b, f) { this.sourceName = a; this.targetName = b; this.comObj = f; this.callbackIndex = 1; this.postMessageTransfers = !0; var q = this.callbacksCapabilities = Object.create(null), w = this.actionHandler = Object.create(null); this._onComObjOnMessage = function (a) { var b = a.data; if (b.targetName === this.sourceName) if (b.isReply) if (a = b.callbackId, b.callbackId in q) { var d = q[a]; delete q[a]; "error" in b ? d.reject(b.error) : d.resolve(b.data) } else R("Cannot resolve callback " + a); else if (b.action in w) { var m = w[b.action]; if (b.callbackId) { var E = this.sourceName, t = b.sourceName; Promise.resolve().then(function () { return m[0].call(m[1], b.data) }).then(function (a) { f.postMessage({ sourceName: E, targetName: t, isReply: !0, callbackId: b.callbackId, data: a }) }, function (a) { a instanceof Error && (a += ""); f.postMessage({ sourceName: E, targetName: t, isReply: !0, callbackId: b.callbackId, error: a }) }) } else m[0].call(m[1], b.data) } else R("Unknown action from worker: " + b.action) }.bind(this); f.addEventListener("message", this._onComObjOnMessage) } var X = "undefined" !== typeof window ? window : "undefined" !== typeof global ? global : "undefined" !== typeof self ? self : this, N = { errors: 0, warnings: 1, infos: 5 }, u = N.warnings, G = function () { function a(b, f) { this.name = "PasswordException"; this.message = b; this.code = f } a.prototype = Error(); return a.constructor = a }(), M = function () { function a(b, f) { this.name = "UnknownErrorException"; this.message = b; this.details = f } a.prototype = Error(); return a.constructor = a }(), K = function () { function a(b) { this.name = "InvalidPDFException"; this.message = b } a.prototype = Error(); return a.constructor = a }(), J = function () { function a(b) { this.name = "MissingPDFException"; this.message = b } a.prototype = Error(); return a.constructor = a }(), v = function () { function a(b, f) { this.name = "UnexpectedResponseException"; this.message = b; this.status = f } a.prototype = Error(); return a.constructor = a }(), r = function () { function a(b) { this.message = b } a.prototype = Error(); a.prototype.name = "NotImplementedException"; return a.constructor = a }(), P = function () { function a(b, f) { this.begin = b; this.end = f; this.message = "Missing data [" + b + ", " + f + ")" } a.prototype = Error(); a.prototype.name = "MissingDataException"; return a.constructor = a }(), H = function () { function a(b) { this.message = b } a.prototype = Error(); a.prototype.name = "XRefParseException"; return a.constructor = a }(), h = /\x00/g, c = function () { function a(q, w) { this.buffer = q; this.byteLength = q.length; for (var U = this.length = void 0 === w ? this.byteLength >> 2 : w; f < U;) Object.defineProperty(a.prototype, f, b(f)), f++ } function b(a) { return { get: function () { var b = this.buffer, f = a << 2; return (b[f] | b[f + 1] << 8 | b[f + 2] << 16 | b[f + 3] << 24) >>> 0 }, set: function (b) { var f = this.buffer, d = a << 2; f[d] = b & 255; f[d + 1] = b >> 8 & 255; f[d + 2] = b >> 16 & 255; f[d + 3] = b >>> 24 & 255 } } } a.prototype = Object.create(null); var f = 0; return a }(); e.Uint32ArrayView = c; var C = function () { function b() { } var d = ["rgb(", 0, ",", 0, ",", 0, ")"]; b.makeCssRgb = function (a, b, f) { d[1] = a; d[3] = b; d[5] = f; return d.join("") }; b.transform = function (a, b) { return [a[0] * b[0] + a[2] * b[1], a[1] * b[0] + a[3] * b[1], a[0] * b[2] + a[2] * b[3], a[1] * b[2] + a[3] * b[3], a[0] * b[4] + a[2] * b[5] + a[4], a[1] * b[4] + a[3] * b[5] + a[5]] }; b.applyTransform = function (a, b) { return [a[0] * b[0] + a[1] * b[2] + b[4], a[0] * b[1] + a[1] * b[3] + b[5]] }; b.applyInverseTransform = function (a, b) { var f = b[0] * b[3] - b[1] * b[2]; return [(a[0] * b[3] - a[1] * b[2] + b[2] * b[5] - b[4] * b[3]) / f, (-a[0] * b[1] + a[1] * b[0] + b[4] * b[1] - b[5] * b[0]) / f] }; b.getAxialAlignedBoundingBox = function (a, f) { var d = b.applyTransform(a, f), V = b.applyTransform(a.slice(2, 4), f), g = b.applyTransform([a[0], a[3]], f), B = b.applyTransform([a[2], a[1]], f); return [Math.min(d[0], V[0], g[0], B[0]), Math.min(d[1], V[1], g[1], B[1]), Math.max(d[0], V[0], g[0], B[0]), Math.max(d[1], V[1], g[1], B[1])] }; b.inverseTransform = function (a) { var b = a[0] * a[3] - a[1] * a[2]; return [a[3] / b, -a[1] / b, -a[2] / b, a[0] / b, (a[2] * a[5] - a[4] * a[3]) / b, (a[4] * a[1] - a[5] * a[0]) / b] }; b.apply3dTransform = function (a, b) { return [a[0] * b[0] + a[1] * b[1] + a[2] * b[2], a[3] * b[0] + a[4] * b[1] + a[5] * b[2], a[6] * b[0] + a[7] * b[1] + a[8] * b[2]] }; b.singularValueDecompose2dScale = function (a) { var b = [a[0], a[2], a[1], a[3]], f = a[0] * b[0] + a[1] * b[2], d = a[2] * b[1] + a[3] * b[3], m = (f + d) / 2; a = Math.sqrt((f + d) * (f + d) - 4 * (f * d - (a[2] * b[0] + a[3] * b[2]) * (a[0] * b[1] + a[1] * b[3]))) / 2; return [Math.sqrt(m + a || 1), Math.sqrt(m - a || 1)] }; b.normalizeRect = function (a) { var b = a.slice(0); a[0] > a[2] && (b[0] = a[2], b[2] = a[0]); a[1] > a[3] && (b[1] = a[3], b[3] = a[1]); return b }; b.intersect = function (a, f) { function d(a, b) { return a - b } var V = [a[0], a[2], f[0], f[2]].sort(d), g = [a[1], a[3], f[1], f[3]].sort(d), B = []; a = b.normalizeRect(a); f = b.normalizeRect(f); if (V[0] === a[0] && V[1] === f[0] || V[0] === f[0] && V[1] === a[0]) B[0] = V[1], B[2] = V[2]; else return !1; if (g[0] === a[1] && g[1] === f[1] || g[0] === f[1] && g[1] === a[1]) B[1] = g[1], B[3] = g[2]; else return !1; return B }; b.sign = function (a) { return 0 > a ? -1 : 1 }; var f = " C CC CCC CD D DC DCC DCCC CM X XX XXX XL L LX LXX LXXX XC I II III IV V VI VII VIII IX".split(" "); b.toRoman = function (b, d) { a(Q(b) && 0 < b, "The number should be a positive integer."); for (var U, m = []; 1E3 <= b;) b -= 1E3, m.push("M"); U = b / 100 | 0; b %= 100; m.push(f[U]); U = b / 10 | 0; b %= 10; m.push(f[10 + U]); m.push(f[20 + b]); U = m.join(""); return d ? U.toLowerCase() : U }; b.appendToArray = function (a, b) { Array.prototype.push.apply(a, b) }; b.prependToArray = function (a, b) { Array.prototype.unshift.apply(a, b) }; b.extendObj = function (a, b) { for (var f in b) a[f] = b[f] }; b.getInheritableProperty = function (a, b) { for (; a && !a.has(b) ;) a = a.get("Parent"); return a ? a.get(b) : null }; b.inherit = function (a, b, f) { a.prototype = Object.create(b.prototype); a.prototype.constructor = a; for (var d in f) a.prototype[d] = f[d] }; b.loadScript = function (a, b) { var f = document.createElement("script"), d = !1; f.setAttribute("src", a); b && (f.onload = function () { d || b(); d = !0 }); document.getElementsByTagName("head")[0].appendChild(f) }; return b }(), c = function () { function a(b, f, q, w, U, m) { this.viewBox = b; this.scale = f; this.rotation = q; this.offsetX = w; this.offsetY = U; var g = (b[2] + b[0]) / 2, B = (b[3] + b[1]) / 2, E, t, x; q %= 360; switch (0 > q ? q + 360 : q) { case 180: q = -1; t = E = 0; x = 1; break; case 90: q = 0; t = E = 1; x = 0; break; case 270: q = 0; t = E = -1; x = 0; break; default: q = 1, t = E = 0, x = -1 } m && (t = -t, x = -x); 0 === q ? (w = Math.abs(B - b[1]) * f + w, U = Math.abs(g - b[0]) * f + U, m = Math.abs(b[3] - b[1]) * f, b = Math.abs(b[2] - b[0]) * f) : (w = Math.abs(g - b[0]) * f + w, U = Math.abs(B - b[1]) * f + U, m = Math.abs(b[2] - b[0]) * f, b = Math.abs(b[3] - b[1]) * f); this.transform = [q * f, E * f, t * f, x * f, w - q * f * g - t * f * B, U - E * f * g - x * f * B]; this.width = m; this.height = b; this.fontScale = f } a.prototype = { clone: function (b) { b = b || {}; var f = "scale" in b ? b.scale : this.scale, q = "rotation" in b ? b.rotation : this.rotation; return new a(this.viewBox.slice(), f, q, this.offsetX, this.offsetY, b.dontFlip) }, convertToViewportPoint: function (a, b) { return C.applyTransform([a, b], this.transform) }, convertToViewportRectangle: function (a) { var b = C.applyTransform([a[0], a[1]], this.transform); a = C.applyTransform([a[2], a[3]], this.transform); return [b[0], b[1], a[0], a[1]] }, convertToPdfPoint: function (a, b) { return C.applyInverseTransform([a, b], this.transform) } }; return a }(), F = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 711, 710, 729, 733, 731, 730, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8226, 8224, 8225, 8230, 8212, 8211, 402, 8260, 8249, 8250, 8722, 8240, 8222, 8220, 8221, 8216, 8217, 8218, 8482, 64257, 64258, 321, 338, 352, 376, 381, 305, 322, 339, 353, 382, 0, 8364]; (function () { function a(b) { this._status = 0; this._handlers = []; try { b.call(this, this._resolve.bind(this), this._reject.bind(this)) } catch (q) { this._reject(q) } } if (X.Promise) "function" !== typeof X.Promise.all && (X.Promise.all = function (a) { var b = 0, d = [], U, m, g = new X.Promise(function (a, b) { U = a; m = b }); a.forEach(function (a, f) { b++; a.then(function (a) { d[f] = a; b--; 0 === b && U(d) }, m) }); 0 === b && U(d); return g }), "function" !== typeof X.Promise.resolve && (X.Promise.resolve = function (a) { return new X.Promise(function (b) { b(a) }) }), "function" !== typeof X.Promise.reject && (X.Promise.reject = function (a) { return new X.Promise(function (b, d) { d(a) }) }), "function" !== typeof X.Promise.prototype["catch"] && (X.Promise.prototype["catch"] = function (a) { return X.Promise.prototype.then(void 0, a) }); else { var b = { handlers: [], running: !1, unhandledRejections: [], pendingRejectionCheck: !1, scheduleHandlers: function (a) { 0 !== a._status && (this.handlers = this.handlers.concat(a._handlers), a._handlers = [], this.running || (this.running = !0, setTimeout(this.runHandlers.bind(this), 0))) }, runHandlers: function () { for (var a = Date.now() + 1; 0 < this.handlers.length;) { var b = this.handlers.shift(), d = b.thisPromise._status, U = b.thisPromise._value; try { 1 === d ? "function" === typeof b.onResolve && (U = b.onResolve(U)) : "function" === typeof b.onReject && (U = b.onReject(U), d = 1, b.thisPromise._unhandledRejection && this.removeUnhandeledRejection(b.thisPromise)) } catch (m) { d = 2, U = m } b.nextPromise._updateStatus(d, U); if (Date.now() >= a) break } 0 < this.handlers.length ? setTimeout(this.runHandlers.bind(this), 0) : this.running = !1 }, addUnhandledRejection: function (a) { this.unhandledRejections.push({ promise: a, time: Date.now() }); this.scheduleRejectionCheck() }, removeUnhandeledRejection: function (a) { a._unhandledRejection = !1; for (var b = 0; b < this.unhandledRejections.length; b++) this.unhandledRejections[b].promise === a && (this.unhandledRejections.splice(b), b--) }, scheduleRejectionCheck: function () { this.pendingRejectionCheck || (this.pendingRejectionCheck = !0, setTimeout(function () { this.pendingRejectionCheck = !1; for (var a = Date.now(), b = 0; b < this.unhandledRejections.length; b++) if (500 < a - this.unhandledRejections[b].time) { var d = this.unhandledRejections[b].promise._value, U = "Unhandled rejection: " + d; d.stack && (U += "\n" + d.stack); l(U); this.unhandledRejections.splice(b); b-- } this.unhandledRejections.length && this.scheduleRejectionCheck() }.bind(this), 500)) } }; a.all = function (b) { function q(a) { 2 !== g._status && (B = [], U(a)) } var d, U, g = new a(function (a, b) { d = a; U = b }), k = b.length, B = []; if (0 === k) return d(B), g; for (var E = 0, t = b.length; E < t; ++E) { var x = b[E], c = function (a) { return function (b) { 2 !== g._status && (B[a] = b, k--, 0 === k && d(B)) } }(E); a.isPromise(x) ? x.then(c, q) : c(x) } return g }; a.isPromise = function (a) { return a && "function" === typeof a.then }; a.resolve = function (b) { return new a(function (a) { a(b) }) }; a.reject = function (b) { return new a(function (a, d) { d(b) }) }; a.prototype = { _status: null, _value: null, _handlers: null, _unhandledRejection: null, _updateStatus: function (f, q) { 1 !== this._status && 2 !== this._status && (1 === f && a.isPromise(q) ? q.then(this._updateStatus.bind(this, 1), this._updateStatus.bind(this, 2)) : (this._status = f, this._value = q, 2 === f && 0 === this._handlers.length && (this._unhandledRejection = !0, b.addUnhandledRejection(this)), b.scheduleHandlers(this))) }, _resolve: function (a) { this._updateStatus(1, a) }, _reject: function (a) { this._updateStatus(2, a) }, then: function (f, q) { var w = new a(function (a, b) { this.resolve = a; this.reject = b }); this._handlers.push({ thisPromise: this, onResolve: f, onReject: q, nextPromise: w }); b.scheduleHandlers(this); return w }, "catch": function (a) { return this.then(void 0, a) } }; X.Promise = a } })(); var n = function () { function a() { this.started = Object.create(null); this.times = []; this.enabled = !0 } a.prototype = { time: function (a) { this.enabled && (a in this.started && l("Timer is already running for " + a), this.started[a] = Date.now()) }, timeEnd: function (a) { this.enabled && (a in this.started || l("Timer has not been started for " + a), this.times.push({ name: a, start: this.started[a], end: Date.now() }), delete this.started[a]) }, toString: function () { var a, b, q = this.times, w = "", U = 0; a = 0; for (b = q.length; a < b; ++a) { var m = q[a].name; m.length > U && (U = m.length) } a = 0; for (b = q.length; a < b; ++a) { for (var g = q[a], m = g.end - g.start, g = g.name; g.length < U;) g += " "; w += g + " " + m + "ms\n" } return w } }; return a }(), A = function (a, b) { if ("undefined" !== typeof Blob) return new Blob([a], { type: b }); var f = new MozBlobBuilder; f.append(a); return f.getBlob(b) }, g = function () { return function (a, b, f) { if (!f && "undefined" !== typeof URL && URL.createObjectURL) return a = A(a, b), URL.createObjectURL(a); b = "data:" + b + ";base64,"; f = 0; for (var q = a.length; f < q; f += 3) { var w = a[f] & 255, U = a[f + 1] & 255, g = a[f + 2] & 255; b += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[w >> 2] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[(w & 3) << 4 | U >> 4] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[f + 1 < q ? (U & 15) << 2 | g >> 6 : 64] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[f + 2 < q ? g & 63 : 64] } return b } }(); I.prototype = { on: function (a, b, f) { var q = this.actionHandler; q[a] && R('There is already an actionName called "' + a + '"'); q[a] = [b, f] }, send: function (a, b, f) { this.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: a, data: b }, f) }, sendWithPromise: function (a, b, f) { var q = this.callbackIndex++; a = { sourceName: this.sourceName, targetName: this.targetName, action: a, data: b, callbackId: q }; b = k(); this.callbacksCapabilities[q] = b; try { this.postMessage(a, f) } catch (w) { b.reject(w) } return b.promise }, postMessage: function (a, b) { b && this.postMessageTransfers ? this.comObj.postMessage(a, b) : this.comObj.postMessage(a) }, destroy: function () { this.comObj.removeEventListener("message", this._onComObjOnMessage) } }; (function (a) { function b(a) { "" == a && (U.call(this), this._isInvalid = !0); return a.toLowerCase() } function f(a) { var b = a.charCodeAt(0); return 32 < b && 127 > b && -1 == [34, 35, 60, 62, 63, 96].indexOf(b) ? a : encodeURIComponent(a) } function q(a) { var b = a.charCodeAt(0); return 32 < b && 127 > b && -1 == [34, 35, 60, 62, 96].indexOf(b) ? a : encodeURIComponent(a) } function w(a, w, m) { function B(a) { n.push(a) } var g = w || "scheme start", k = 0, V = "", T = !1, h = !1, n = []; a: for (; (void 0 != a[k - 1] || 0 == k) && !this._isInvalid;) { var z = a[k]; switch (g) { case "scheme start": if (z && x.test(z)) V += z.toLowerCase(), g = "scheme"; else if (w) { B("Invalid scheme."); break a } else { V = ""; g = "no scheme"; continue } break; case "scheme": if (z && c.test(z)) V += z.toLowerCase(); else if (":" == z) { this._scheme = V; V = ""; if (w) break a; void 0 !== E[this._scheme] && (this._isRelative = !0); g = "file" == this._scheme ? "relative" : this._isRelative && m && m._scheme == this._scheme ? "relative or authority" : this._isRelative ? "authority first slash" : "scheme data" } else if (w) { void 0 != z && B("Code point not allowed in scheme: " + z); break a } else { V = ""; k = 0; g = "no scheme"; continue } break; case "scheme data": "?" == z ? (this._query = "?", g = "query") : "#" == z ? (this._fragment = "#", g = "fragment") : void 0 != z && "\t" != z && "\n" != z && "\r" != z && (this._schemeData += f(z)); break; case "no scheme": if (m && void 0 !== E[m._scheme]) { g = "relative"; continue } else B("Missing scheme."), U.call(this), this._isInvalid = !0; break; case "relative or authority": if ("/" == z && "/" == a[k + 1]) g = "authority ignore slashes"; else { B("Expected /, got: " + z); g = "relative"; continue } break; case "relative": this._isRelative = !0; "file" != this._scheme && (this._scheme = m._scheme); if (void 0 == z) { this._host = m._host; this._port = m._port; this._path = m._path.slice(); this._query = m._query; this._username = m._username; this._password = m._password; break a } else if ("/" == z || "\\" == z) "\\" == z && B("\\ is an invalid code point."), g = "relative slash"; else if ("?" == z) this._host = m._host, this._port = m._port, this._path = m._path.slice(), this._query = "?", this._username = m._username, this._password = m._password, g = "query"; else if ("#" == z) this._host = m._host, this._port = m._port, this._path = m._path.slice(), this._query = m._query, this._fragment = "#", this._username = m._username, this._password = m._password, g = "fragment"; else { var g = a[k + 1], A = a[k + 2]; if ("file" != this._scheme || !x.test(z) || ":" != g && "|" != g || void 0 != A && "/" != A && "\\" != A && "?" != A && "#" != A) this._host = m._host, this._port = m._port, this._username = m._username, this._password = m._password, this._path = m._path.slice(), this._path.pop(); g = "relative path"; continue } break; case "relative slash": if ("/" == z || "\\" == z) "\\" == z && B("\\ is an invalid code point."), g = "file" == this._scheme ? "file host" : "authority ignore slashes"; else { "file" != this._scheme && (this._host = m._host, this._port = m._port, this._username = m._username, this._password = m._password); g = "relative path"; continue } break; case "authority first slash": if ("/" == z) g = "authority second slash"; else { B("Expected '/', got: " + z); g = "authority ignore slashes"; continue } break; case "authority second slash": g = "authority ignore slashes"; if ("/" != z) { B("Expected '/', got: " + z); continue } break; case "authority ignore slashes": if ("/" != z && "\\" != z) { g = "authority"; continue } else B("Expected authority, got: " + z); break; case "authority": if ("@" == z) { T && (B("@ already seen."), V += "%40"); T = !0; for (z = 0; z < V.length; z++) A = V[z], "\t" == A || "\n" == A || "\r" == A ? B("Invalid whitespace in authority.") : ":" == A && null === this._password ? this._password = "" : (A = f(A), null !== this._password ? this._password += A : this._username += A); V = "" } else if (void 0 == z || "/" == z || "\\" == z || "?" == z || "#" == z) { k -= V.length; V = ""; g = "host"; continue } else V += z; break; case "file host": if (void 0 == z || "/" == z || "\\" == z || "?" == z || "#" == z) { 2 != V.length || !x.test(V[0]) || ":" != V[1] && "|" != V[1] ? (0 != V.length && (this._host = b.call(this, V), V = ""), g = "relative path start") : g = "relative path"; continue } else "\t" == z || "\n" == z || "\r" == z ? B("Invalid whitespace in file host.") : V += z; break; case "host": case "hostname": if (":" != z || h) if (void 0 == z || "/" == z || "\\" == z || "?" == z || "#" == z) { this._host = b.call(this, V); V = ""; g = "relative path start"; if (w) break a; continue } else "\t" != z && "\n" != z && "\r" != z ? ("[" == z ? h = !0 : "]" == z && (h = !1), V += z) : B("Invalid code point in host/hostname: " + z); else if (this._host = b.call(this, V), V = "", g = "port", "hostname" == w) break a; break; case "port": if (/[0-9]/.test(z)) V += z; else if (void 0 == z || "/" == z || "\\" == z || "?" == z || "#" == z || w) { "" != V && (V = parseInt(V, 10), V != E[this._scheme] && (this._port = V + ""), V = ""); if (w) break a; g = "relative path start"; continue } else "\t" == z || "\n" == z || "\r" == z ? B("Invalid code point in port: " + z) : (U.call(this), this._isInvalid = !0); break; case "relative path start": "\\" == z && B("'\\' not allowed in path."); g = "relative path"; if ("/" != z && "\\" != z) continue; break; case "relative path": if (void 0 != z && "/" != z && "\\" != z && (w || "?" != z && "#" != z)) "\t" != z && "\n" != z && "\r" != z && (V += f(z)); else { "\\" == z && B("\\ not allowed in relative path."); if (A = t[V.toLowerCase()]) V = A; ".." == V ? (this._path.pop(), "/" != z && "\\" != z && this._path.push("")) : "." == V && "/" != z && "\\" != z ? this._path.push("") : "." != V && ("file" == this._scheme && 0 == this._path.length && 2 == V.length && x.test(V[0]) && "|" == V[1] && (V = V[0] + ":"), this._path.push(V)); V = ""; "?" == z ? (this._query = "?", g = "query") : "#" == z && (this._fragment = "#", g = "fragment") } break; case "query": w || "#" != z ? void 0 != z && "\t" != z && "\n" != z && "\r" != z && (this._query += q(z)) : (this._fragment = "#", g = "fragment"); break; case "fragment": void 0 != z && "\t" != z && "\n" != z && "\r" != z && (this._fragment += z) } k++ } } function U() { this._username = this._schemeData = this._scheme = ""; this._password = null; this._port = this._host = ""; this._path = []; this._fragment = this._query = ""; this._isRelative = this._isInvalid = !1 } function g(a, b) { void 0 === b || b instanceof g || (b = new g(String(b))); this._url = a; U.call(this); var f = a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); w.call(this, f, null, b) } var k = !1; try { if ("function" === typeof URL && "object" === typeof URL.prototype && "origin" in URL.prototype) { var B = new URL("b", "http://a"); B.pathname = "c%20d"; k = "http://a/c%20d" === B.href } } catch (y) { } if (!k) { var E = Object.create(null); E.ftp = 21; E.file = 0; E.gopher = 70; E.http = 80; E.https = 443; E.ws = 80; E.wss = 443; var t = Object.create(null); t["%2e"] = "."; t[".%2e"] = ".."; t["%2e."] = ".."; t["%2e%2e"] = ".."; var x = /[a-zA-Z]/, c = /[a-zA-Z0-9\+\-\.]/; g.prototype = { toString: function () { return this.href }, get href() { if (this._isInvalid) return this._url; var a = ""; if ("" != this._username || null != this._password) a = this._username + (null != this._password ? ":" + this._password : "") + "@"; return this.protocol + (this._isRelative ? "//" + a + this.host : "") + this.pathname + this._query + this._fragment }, set href(a) { U.call(this); w.call(this, a) }, get protocol() { return this._scheme + ":" }, set protocol(a) { this._isInvalid || w.call(this, a + ":", "scheme start") }, get host() { return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host }, set host(a) { !this._isInvalid && this._isRelative && w.call(this, a, "host") }, get hostname() { return this._host }, set hostname(a) { !this._isInvalid && this._isRelative && w.call(this, a, "hostname") }, get port() { return this._port }, set port(a) { !this._isInvalid && this._isRelative && w.call(this, a, "port") }, get pathname() { return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData }, set pathname(a) { !this._isInvalid && this._isRelative && (this._path = [], w.call(this, a, "relative path start")) }, get search() { return this._isInvalid || !this._query || "?" == this._query ? "" : this._query }, set search(a) { !this._isInvalid && this._isRelative && (this._query = "?", "?" == a[0] && (a = a.slice(1)), w.call(this, a, "query")) }, get hash() { return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment }, set hash(a) { this._isInvalid || (this._fragment = "#", "#" == a[0] && (a = a.slice(1)), w.call(this, a, "fragment")) }, get origin() { var a; if (this._isInvalid || !this._scheme) return ""; switch (this._scheme) { case "data": case "file": case "javascript": case "mailto": return "null" } return (a = this.host) ? this._scheme + "://" + a : "" } }; var h = a.URL; h && (g.createObjectURL = function (a) { return h.createObjectURL.apply(h, arguments) }, g.revokeObjectURL = function (a) { h.revokeObjectURL(a) }); a.URL = g } })(X); e.FONT_IDENTITY_MATRIX = [.001, 0, 0, .001, 0, 0]; e.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; e.OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotations: 78, endAnnotations: 79, beginAnnotation: 80, endAnnotation: 81, paintJpegXObject: 82, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91 }; e.VERBOSITY_LEVELS = N; e.UNSUPPORTED_FEATURES = { unknown: "unknown", forms: "forms", javaScript: "javaScript", smask: "smask", shadingPattern: "shadingPattern", font: "font" }; e.AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 }; e.AnnotationFlag = { INVISIBLE: 1, HIDDEN: 2, PRINT: 4, NOZOOM: 8, NOROTATE: 16, NOVIEW: 32, READONLY: 64, LOCKED: 128, TOGGLENOVIEW: 256, LOCKEDCONTENTS: 512 }; e.AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, LINE: 4, SQUARE: 5, CIRCLE: 6, POLYGON: 7, POLYLINE: 8, HIGHLIGHT: 9, UNDERLINE: 10, SQUIGGLY: 11, STRIKEOUT: 12, STAMP: 13, CARET: 14, INK: 15, POPUP: 16, FILEATTACHMENT: 17, SOUND: 18, MOVIE: 19, WIDGET: 20, SCREEN: 21, PRINTERMARK: 22, TRAPNET: 23, WATERMARK: 24, THREED: 25, REDACT: 26 }; e.FontType = { UNKNOWN: 0, TYPE1: 1, TYPE1C: 2, CIDFONTTYPE0: 3, CIDFONTTYPE0C: 4, TRUETYPE: 5, CIDFONTTYPE2: 6, TYPE3: 7, OPENTYPE: 8, TYPE0: 9, MMTYPE1: 10 }; e.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; e.InvalidPDFException = K; e.MessageHandler = I; e.MissingDataException = P; e.MissingPDFException = J; e.NotImplementedException = r; e.PageViewport = c; e.PasswordException = G; e.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; e.StatTimer = n; e.StreamType = { UNKNOWN: 0, FLATE: 1, LZW: 2, DCT: 3, JPX: 4, JBIG: 5, A85: 6, AHX: 7, CCF: 8, RL: 9 }; e.TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, INVISIBLE: 3, FILL_ADD_TO_PATH: 4, STROKE_ADD_TO_PATH: 5, FILL_STROKE_ADD_TO_PATH: 6, ADD_TO_PATH: 7, FILL_STROKE_MASK: 3, ADD_TO_PATH_FLAG: 4 }; e.UnexpectedResponseException = v; e.UnknownErrorException = M; e.Util = C; e.XRefParseException = H; e.arrayByteLength = L; e.arraysToBytes = function (a) { if (1 === a.length && a[0] instanceof Uint8Array) return a[0]; var d = 0, f, q = a.length, w, U; for (f = 0; f < q; f++) w = a[f], U = L(w), d += U; var g = 0, d = new Uint8Array(d); for (f = 0; f < q; f++) w = a[f], w instanceof Uint8Array || (w = "string" === typeof w ? b(w) : new Uint8Array(w)), U = w.byteLength, d.set(w, g), g += U; return d }; e.assert = a; e.bytesToString = function (b) { a(null !== b && "object" === typeof b && void 0 !== b.length, "Invalid argument for bytesToString"); var d = b.length; if (8192 > d) return String.fromCharCode.apply(null, b); for (var f = [], q = 0; q < d; q += 8192) { var w = b.subarray(q, Math.min(q + 8192, d)); f.push(String.fromCharCode.apply(null, w)) } return f.join("") }; e.createBlob = A; e.createPromiseCapability = k; e.createObjectURL = g; e.deprecated = function (a) { console.log("Deprecated API usage: " + a) }; e.error = R; e.getLookupTableFactory = function (a) { var b; return function () { a && (b = Object.create(null), a(b), a = null); return b } }; e.getVerbosityLevel = function () { return u }; e.globalScope = X; e.info = function (a) { u >= N.infos && console.log("Info: " + a) }; e.isArray = function (a) { return a instanceof Array }; e.isArrayBuffer = function (a) { return "object" === typeof a && null !== a && void 0 !== a.byteLength }; e.isBool = function (a) { return "boolean" === typeof a }; e.isEmptyObj = function (a) { for (var b in a) return !1; return !0 }; e.isInt = Q; e.isNum = function (a) { return "number" === typeof a }; e.isString = function (a) { return "string" === typeof a }; e.isSameOrigin = function (a, b) { try { var f = new URL(a); if (!f.origin || "null" === f.origin) return !1 } catch (w) { return !1 } var q = new URL(b, f); return f.origin === q.origin }; e.isValidUrl = function (a, b) { if (!a || "string" !== typeof a) return !1; var f = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a); if (!f) return b; f = f[0].toLowerCase(); switch (f) { case "http": case "https": case "ftp": case "mailto": case "tel": return !0; default: return !1 } }; e.isLittleEndian = function () { var a = new Uint8Array(2); a[0] = 1; return 1 === (new Uint16Array(a.buffer))[0] }; e.isEvalSupported = function () { try { return new Function(""), !0 } catch (a) { return !1 } }; e.loadJpegStream = function (a, b, f) { var q = new Image; q.onload = function () { f.resolve(a, q) }; q.onerror = function () { f.resolve(a, null); l("Error during JPEG image loading") }; q.src = b }; e.log2 = function (a) { for (var b = 1, f = 0; a > b;) b <<= 1, f++; return f }; e.readInt8 = function (a, b) { return a[b] << 24 >> 24 }; e.readUint16 = function (a, b) { return a[b] << 8 | a[b + 1] }; e.readUint32 = function (a, b) { return (a[b] << 24 | a[b + 1] << 16 | a[b + 2] << 8 | a[b + 3]) >>> 0 }; e.removeNullCharacters = function (a) { return "string" !== typeof a ? (l("The argument for removeNullCharacters must be a string."), a) : a.replace(h, "") }; e.setVerbosityLevel = function (a) { u = a }; e.shadow = function (a, b, f) { Object.defineProperty(a, b, { value: f, enumerable: !0, configurable: !0, writable: !1 }); return f }; e.string32 = function (a) { return String.fromCharCode(a >> 24 & 255, a >> 16 & 255, a >> 8 & 255, a & 255) }; e.stringToBytes = b; e.stringToPDFString = function (a) { var b, f = a.length, q = []; if ("\u00fe" === a[0] && "\u00ff" === a[1]) for (b = 2; b < f; b += 2) q.push(String.fromCharCode(a.charCodeAt(b) << 8 | a.charCodeAt(b + 1))); else for (b = 0; b < f; ++b) { var w = F[a.charCodeAt(b)]; q.push(w ? String.fromCharCode(w) : a.charAt(b)) } return q.join("") }; e.stringToUTF8String = function (a) { return decodeURIComponent(escape(a)) }; e.utf8StringToString = function (a) { return unescape(encodeURIComponent(a)) }; e.warn = l }); (function (e, l) { l(e.pdfjsCoreCFFParser = {}, e.pdfjsSharedUtil, e.pdfjsCoreCharsets, e.pdfjsCoreEncodings) })(this, function (e, l, R, O) { var a = l.error, b = l.info, L = l.bytesToString, Q = l.warn, k = l.isArray, I = l.Util, X = l.stringToBytes, N = l.assert, u = R.ISOAdobeCharset, G = R.ExpertCharset, M = R.ExpertSubsetCharset, K = O.StandardEncoding, J = O.ExpertEncoding, v = ".notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore quoteleft 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 braceleft bar braceright asciitilde exclamdown cent sterling fraction yen florin section currency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi fl endash dagger daggerdbl periodcentered paragraph bullet quotesinglbase quotedblbase quotedblright guillemotright ellipsis perthousand questiondown grave acute circumflex tilde macron breve dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash AE ordfeminine Lslash Oslash OE ordmasculine ae dotlessi lslash oslash oe germandbls onesuperior logicalnot mu trademark Eth onehalf plusminus Thorn onequarter divide brokenbar degree thorn threequarters twosuperior registered minus eth multiply threesuperior copyright Aacute Acircumflex Adieresis Agrave Aring Atilde Ccedilla Eacute Ecircumflex Edieresis Egrave Iacute Icircumflex Idieresis Igrave Ntilde Oacute Ocircumflex Odieresis Ograve Otilde Scaron Uacute Ucircumflex Udieresis Ugrave Yacute Ydieresis Zcaron aacute acircumflex adieresis agrave aring atilde ccedilla eacute ecircumflex edieresis egrave iacute icircumflex idieresis igrave ntilde oacute ocircumflex odieresis ograve otilde scaron uacute ucircumflex udieresis ugrave yacute ydieresis zcaron exclamsmall Hungarumlautsmall dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle commasuperior threequartersemdash periodsuperior questionsmall asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff ffi ffl parenleftinferior parenrightinferior Circumflexsmall hyphensuperior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall colonmonetary onefitted rupiah Tildesmall exclamdownsmall centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash hypheninferior Ogoneksmall Ringsmall Cedillasmall questiondownsmall oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior Agravesmall Aacutesmall Acircumflexsmall Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall 001.000 001.001 001.002 001.003 Black Bold Book Light Medium Regular Roman Semibold".split(" "); l = function () { function f(a, b, f) { this.bytes = a.getBytes(); this.properties = b; this.seacAnalysisEnabled = !!f } var q = [null, { id: "hstem", min: 2, stackClearing: !0, stem: !0 }, null, { id: "vstem", min: 2, stackClearing: !0, stem: !0 }, { id: "vmoveto", min: 1, stackClearing: !0 }, { id: "rlineto", min: 2, resetStack: !0 }, { id: "hlineto", min: 1, resetStack: !0 }, { id: "vlineto", min: 1, resetStack: !0 }, { id: "rrcurveto", min: 6, resetStack: !0 }, null, { id: "callsubr", min: 1, undefStack: !0 }, { id: "return", min: 0, undefStack: !0 }, null, null, { id: "endchar", min: 0, stackClearing: !0 }, null, null, null, { id: "hstemhm", min: 2, stackClearing: !0, stem: !0 }, { id: "hintmask", min: 0, stackClearing: !0 }, { id: "cntrmask", min: 0, stackClearing: !0 }, { id: "rmoveto", min: 2, stackClearing: !0 }, { id: "hmoveto", min: 1, stackClearing: !0 }, { id: "vstemhm", min: 2, stackClearing: !0, stem: !0 }, { id: "rcurveline", min: 8, resetStack: !0 }, { id: "rlinecurve", min: 8, resetStack: !0 }, { id: "vvcurveto", min: 4, resetStack: !0 }, { id: "hhcurveto", min: 4, resetStack: !0 }, null, { id: "callgsubr", min: 1, undefStack: !0 }, { id: "vhcurveto", min: 4, resetStack: !0 }, { id: "hvcurveto", min: 4, resetStack: !0 }], d = [null, null, null, { id: "and", min: 2, stackDelta: -1 }, { id: "or", min: 2, stackDelta: -1 }, { id: "not", min: 1, stackDelta: 0 }, null, null, null, { id: "abs", min: 1, stackDelta: 0 }, { id: "add", min: 2, stackDelta: -1, stackFn: function (a, b) { a[b - 2] += a[b - 1] } }, { id: "sub", min: 2, stackDelta: -1, stackFn: function (a, b) { a[b - 2] -= a[b - 1] } }, { id: "div", min: 2, stackDelta: -1, stackFn: function (a, b) { a[b - 2] /= a[b - 1] } }, null, { id: "neg", min: 1, stackDelta: 0, stackFn: function (a, b) { a[b - 1] = -a[b - 1] } }, { id: "eq", min: 2, stackDelta: -1 }, null, null, { id: "drop", min: 1, stackDelta: -1 }, null, { id: "put", min: 2, stackDelta: -2 }, { id: "get", min: 1, stackDelta: 0 }, { id: "ifelse", min: 4, stackDelta: -3 }, { id: "random", min: 0, stackDelta: 1 }, { id: "mul", min: 2, stackDelta: -1, stackFn: function (a, b) { a[b - 2] *= a[b - 1] } }, null, { id: "sqrt", min: 1, stackDelta: 0 }, { id: "dup", min: 1, stackDelta: 1 }, { id: "exch", min: 2, stackDelta: 0 }, { id: "index", min: 2, stackDelta: 0 }, { id: "roll", min: 3, stackDelta: -2 }, null, null, null, { id: "hflex", min: 7, resetStack: !0 }, { id: "flex", min: 13, resetStack: !0 }, { id: "hflex1", min: 9, resetStack: !0 }, { id: "flex1", min: 11, resetStack: !0 }]; f.prototype = { parse: function () { var a = this.properties, b = new r; this.cff = b; var f = this.parseHeader(), q = this.parseIndex(f.endPos), d = this.parseIndex(q.endPos), w = this.parseIndex(d.endPos), m = this.parseIndex(w.endPos), d = this.parseDict(d.obj.get(0)), d = this.createDict(C, d, b.strings); b.header = f.obj; b.names = this.parseNameIndex(q.obj); b.strings = this.parseStringIndex(w.obj); b.topDict = d; b.globalSubrIndex = m.obj; this.parsePrivateDict(b.topDict); b.isCIDFont = d.hasName("ROS"); f = d.getByName("CharStrings"); f = this.parseIndex(f).obj; if (q = d.getByName("FontMatrix")) a.fontMatrix = q; if (q = d.getByName("FontBBox")) a.ascent = q[3], a.descent = q[1], a.ascentScaled = !0; if (b.isCIDFont) { a = this.parseIndex(d.getByName("FDArray")).obj; q = 0; for (w = a.count; q < w; ++q) { var g = a.get(q), g = this.createDict(C, this.parseDict(g), b.strings); this.parsePrivateDict(g); b.fdArray.push(g) } a = null; q = this.parseCharsets(d.getByName("charset"), f.count, b.strings, !0); b.fdSelect = this.parseFDSelect(d.getByName("FDSelect"), f.count) } else q = this.parseCharsets(d.getByName("charset"), f.count, b.strings, !1), a = this.parseEncoding(d.getByName("Encoding"), a, b.strings, q.charset); b.charset = q; b.encoding = a; m = this.parseCharStrings(f, d.privateDict.subrsIndex, m.obj, b.fdSelect, b.fdArray); b.charStrings = m.charStrings; b.seacs = m.seacs; b.widths = m.widths; return b }, parseHeader: function () { for (var f = this.bytes, q = f.length, d = 0; d < q && 1 !== f[d];)++d; d >= q ? a("Invalid CFF header") : 0 !== d && (b("cff data is shifted"), this.bytes = f = f.subarray(d)); q = f[2]; return { obj: new P(f[0], f[1], q, f[3]), endPos: q } }, parseDict: function (b) { function f() { var d = b[q++]; if (30 === d) { for (var d = "", w = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"], m = b.length; q < m;) { var g = b[q++], t = g >> 4, g = g & 15; if (15 === t) break; d += w[t]; if (15 === g) break; d += w[g] } return parseFloat(d) } if (28 === d) return d = b[q++], d = (d << 24 | b[q++] << 16) >> 16; if (29 === d) return d = b[q++], d = d << 8 | b[q++], d = d << 8 | b[q++], d = d << 8 | b[q++]; if (32 <= d && 246 >= d) return d - 139; if (247 <= d && 250 >= d) return 256 * (d - 247) + b[q++] + 108; if (251 <= d && 254 >= d) return -(256 * (d - 251)) - b[q++] - 108; a("255 is not a valid DICT command"); return -1 } for (var q = 0, d = [], w = [], q = 0, m = b.length; q < m;) { var g = b[q]; 21 >= g ? (12 === g && (g = g << 8 | b[++q]), w.push([g, d]), d = [], ++q) : d.push(f()) } return w }, parseIndex: function (a) { var b = new h, f = this.bytes, q = f[a++] << 8 | f[a++], d = [], w = a, m, g; if (0 !== q) { var w = f[a++], k = a + (q + 1) * w - 1; m = 0; for (g = q + 1; m < g; ++m) { for (var y = 0, p = 0; p < w; ++p) y <<= 8, y += f[a++]; d.push(k + y) } w = d[q] } m = 0; for (g = d.length - 1; m < g; ++m) b.add(f.subarray(d[m], d[m + 1])); return { obj: b, endPos: w } }, parseNameIndex: function (a) { for (var b = [], f = 0, q = a.count; f < q; ++f) { for (var d = a.get(f), w = Math.min(d.length, 127), m = [], g = 0; g < w; ++g) { var k = d[g]; m[g] = 0 === g && 0 === k ? k : 33 > k || 126 < k || 91 === k || 93 === k || 40 === k || 41 === k || 123 === k || 125 === k || 60 === k || 62 === k || 47 === k || 37 === k || 35 === k ? 95 : k } b.push(L(m)) } return b }, parseStringIndex: function (a) { for (var b = new H, f = 0, q = a.count; f < q; ++f) { var d = a.get(f); b.add(L(d)) } return b }, createDict: function (a, b, f) { a = new a(f); f = 0; for (var q = b.length; f < q; ++f) { var d = b[f]; a.setByKey(d[0], d[1]) } return a }, parseCharString: function (a, b, f, m) { if (10 < a.callDepth) return !1; for (var g = a.stackSize, t = a.stack, k = b.length, c = 0; c < k;) { var z = b[c++], y = null; if (12 === z) z = b[c++], 0 === z ? (b[c - 2] = 139, b[c - 1] = 22, g = 0) : y = d[z]; else if (28 === z) t[g] = (b[c] << 24 | b[c + 1] << 16) >> 16, c += 2, g++; else if (14 === z) { if (4 <= g && (g -= 4, this.seacAnalysisEnabled)) return a.seac = t.slice(g, g + 4), !1; y = q[z] } else if (32 <= z && 246 >= z) t[g] = z - 139, g++; else if (247 <= z && 254 >= z) t[g] = 251 > z ? (z - 247 << 8) + b[c] + 108 : -(z - 251 << 8) - b[c] - 108, c++, g++; else if (255 === z) t[g] = (b[c] << 24 | b[c + 1] << 16 | b[c + 2] << 8 | b[c + 3]) / 65536, c += 4, g++; else if (19 === z || 20 === z) a.hints += g >> 1, c += a.hints + 7 >> 3, g %= 2, y = q[z]; else if (10 === z || 29 === z) { y = 10 === z ? f : m; if (!y) return y = q[z], Q("Missing subrsIndex for " + y.id), !1; var p = 32768; 1240 > y.count ? p = 107 : 33900 > y.count && (p = 1131); p = t[--g] + p; if (0 > p || p >= y.count) return y = q[z], Q("Out of bounds subrIndex for " + y.id), !1; a.stackSize = g; a.callDepth++; if (!this.parseCharString(a, y.get(p), f, m)) return !1; a.callDepth--; g = a.stackSize; continue } else { if (11 === z) return a.stackSize = g, !0; y = q[z] } if (y) { y.stem && (a.hints += g >> 1); if ("min" in y && !a.undefStack && g < y.min) return Q("Not enough parameters for " + y.id + "; actual: " + g + ", expected: " + y.min), !1; a.firstStackClearing && y.stackClearing && (a.firstStackClearing = !1, g -= y.min, 2 <= g && y.stem ? g %= 2 : 1 < g && Q("Found too many parameters for stack-clearing command"), 0 < g && 0 <= t[g - 1] && (a.width = t[g - 1])); "stackDelta" in y ? ("stackFn" in y && y.stackFn(t, g), g += y.stackDelta) : y.stackClearing ? g = 0 : y.resetStack ? (g = 0, a.undefStack = !1) : y.undefStack && (g = 0, a.undefStack = !0, a.firstStackClearing = !1) } } a.stackSize = g; return !0 }, parseCharStrings: function (a, b, f, q, d) { for (var w = [], g = [], m = a.count, k = 0; k < m; k++) { var c = a.get(k), p = { callDepth: 0, stackSize: 0, stack: [], undefStack: !0, hints: 0, firstStackClearing: !0, seac: null, width: null }, h = !0, n = null; if (q && d.length) { var A = q.getFDIndex(k); -1 === A && (Q("Glyph index is not in fd select."), h = !1); A >= d.length && (Q("Invalid fd index for glyph index."), h = !1); h && (n = d[A].privateDict.subrsIndex) } else b && (n = b); h && (h = this.parseCharString(p, c, n, f)); null !== p.width && (g[k] = p.width); null !== p.seac && (w[k] = p.seac); h || a.set(k, new Uint8Array([14])) } return { charStrings: a, seacs: w, widths: g } }, emptyPrivateDictionary: function (a) { var b = this.createDict(F, [], a.strings); a.setByKey(18, [0, 0]); a.privateDict = b }, parsePrivateDict: function (a) { if (a.hasName("Private")) { var b = a.getByName("Private"); if (k(b) && 2 === b.length) { var f = b[0], b = b[1]; if (0 === f || b >= this.bytes.length) this.emptyPrivateDictionary(a); else if (f = this.bytes.subarray(b, b + f), f = this.parseDict(f), f = this.createDict(F, f, a.strings), a.privateDict = f, f.getByName("Subrs")) { var q = f.getByName("Subrs"), b = b + q; 0 === q || b >= this.bytes.length ? this.emptyPrivateDictionary(a) : (a = this.parseIndex(b), f.subrsIndex = a.obj) } } else a.removeByName("Private") } else this.emptyPrivateDictionary(a) }, parseCharsets: function (b, f, q, d) { if (0 === b) return new A(!0, n.ISO_ADOBE, u); if (1 === b) return new A(!0, n.EXPERT, G); if (2 === b) return new A(!0, n.EXPERT_SUBSET, M); var w = this.bytes, g = b, m = w[b++], k = [".notdef"], c, y, p; --f; switch (m) { case 0: for (p = 0; p < f; p++) c = w[b++] << 8 | w[b++], k.push(d ? c : q.get(c)); break; case 1: for (; k.length <= f;) for (c = w[b++] << 8 | w[b++], y = w[b++], p = 0; p <= y; p++) k.push(d ? c++ : q.get(c++)); break; case 2: for (; k.length <= f;) for (c = w[b++] << 8 | w[b++], y = w[b++] << 8 | w[b++], p = 0; p <= y; p++) k.push(d ? c++ : q.get(c++)); break; default: a("Unknown charset format") } b = w.subarray(g, b); return new A(!1, m, k, b) }, parseEncoding: function (b, f, q, d) { f = Object.create(null); var w = this.bytes, m = !1, k, c, h = null; if (0 === b || 1 === b) for (m = !0, q = (k = b) ? J : K, c = 0, b = d.length; c < b; c++) w = q.indexOf(d[c]), -1 !== w && (f[w] = c); else { h = b; k = w[b++]; switch (k & 127) { case 0: var y = w[b++]; for (c = 1; c <= y; c++) f[w[b++]] = c; break; case 1: var y = w[b++], p = 1; for (c = 0; c < y; c++) for (var D = w[b++], n = w[b++], A = D; A <= D + n; A++) f[A] = p++; break; default: a("Unknow encoding format: " + k + " in CFF") } y = b; if (k & 128) for (w[h] &= 127, p = w[b++], c = 0; c < p; c++) D = w[b++], n = (w[b++] << 8) + (w[b++] & 255), f[D] = d.indexOf(q.get(n)); h = w.subarray(h, y) } return new g(m, k & 127, f, h) }, parseFDSelect: function (b, f) { var q = b, d = this.bytes, w = d[b++], g = []; switch (w) { case 0: for (w = 0; w < f; ++w) { var k = d[b++]; g.push(k) } break; case 3: k = d[b++] << 8 | d[b++]; for (w = 0; w < k; ++w) for (var c = d[b++] << 8 | d[b++], h = d[b++], y = d[b] << 8 | d[b + 1]; c < y; ++c) g.push(h); b += 2; break; default: a("Unknown fdselect format " + w) } return new m(g, d.subarray(q, b)) } }; return f }(); var r = function () { return function () { this.header = null; this.names = []; this.topDict = null; this.strings = new H; this.charStrings = this.charset = this.encoding = this.globalSubrIndex = null; this.fdArray = []; this.fdSelect = null; this.isCIDFont = !1 } }(), P = function () { return function (a, b, d, g) { this.major = a; this.minor = b; this.hdrSize = d; this.offSize = g } }(), H = function () { function a() { this.strings = [] } a.prototype = { get: function (a) { return 0 <= a && 390 >= a ? v[a] : a - 391 <= this.strings.length ? this.strings[a - 391] : v[0] }, add: function (a) { this.strings.push(a) }, get count() { return this.strings.length } }; return a }(), h = function () { function a() { this.objects = []; this.length = 0 } a.prototype = { add: function (a) { this.length += a.length; this.objects.push(a) }, set: function (a, b) { this.length += b.length - this.objects[a].length; this.objects[a] = b }, get: function (a) { return this.objects[a] }, get count() { return this.objects.length } }; return a }(), c = function () { function b(a, f) { this.keyToNameMap = a.keyToNameMap; this.nameToKeyMap = a.nameToKeyMap; this.defaults = a.defaults; this.types = a.types; this.opcodes = a.opcodes; this.order = a.order; this.strings = f; this.values = Object.create(null) } b.prototype = { setByKey: function (a, b) { if (!(a in this.keyToNameMap)) return !1; if (0 === b.length) return !0; var f = this.types[a]; if ("num" === f || "sid" === f || "offset" === f) b = b[0]; this.values[a] = b; return !0 }, setByName: function (b, f) { b in this.nameToKeyMap || a('Invalid dictionary name "' + b + '"'); this.values[this.nameToKeyMap[b]] = f }, hasName: function (a) { return this.nameToKeyMap[a] in this.values }, getByName: function (b) { b in this.nameToKeyMap || a('Invalid dictionary name "' + b + '"'); b = this.nameToKeyMap[b]; return b in this.values ? this.values[b] : this.defaults[b] }, removeByName: function (a) { delete this.values[this.nameToKeyMap[a]] } }; b.createTables = function (a) { for (var b = { keyToNameMap: {}, nameToKeyMap: {}, defaults: {}, types: {}, opcodes: {}, order: [] }, f = 0, d = a.length; f < d; ++f) { var g = a[f], m = k(g[0]) ? (g[0][0] << 8) + g[0][1] : g[0]; b.keyToNameMap[m] = g[1]; b.nameToKeyMap[g[1]] = m; b.types[m] = g[2]; b.defaults[m] = g[3]; b.opcodes[m] = k(g[0]) ? g[0] : [g[0]]; b.order.push(m) } return b }; return b }(), C = function () { function a(f) { null === d && (d = c.createTables(b)); c.call(this, d, f); this.privateDict = null } var b = [[[12, 30], "ROS", ["sid", "sid", "num"], null], [[12, 20], "SyntheticBase", "num", null], [0, "version", "sid", null], [1, "Notice", "sid", null], [[12, 0], "Copyright", "sid", null], [2, "FullName", "sid", null], [3, "FamilyName", "sid", null], [4, "Weight", "sid", null], [[12, 1], "isFixedPitch", "num", 0], [[12, 2], "ItalicAngle", "num", 0], [[12, 3], "UnderlinePosition", "num", -100], [[12, 4], "UnderlineThickness", "num", 50], [[12, 5], "PaintType", "num", 0], [[12, 6], "CharstringType", "num", 2], [[12, 7], "FontMatrix", "num num num num num num".split(" "), [.001, 0, 0, .001, 0, 0]], [13, "UniqueID", "num", null], [5, "FontBBox", ["num", "num", "num", "num"], [0, 0, 0, 0]], [[12, 8], "StrokeWidth", "num", 0], [14, "XUID", "array", null], [15, "charset", "offset", 0], [16, "Encoding", "offset", 0], [17, "CharStrings", "offset", 0], [18, "Private", ["offset", "offset"], null], [[12, 21], "PostScript", "sid", null], [[12, 22], "BaseFontName", "sid", null], [[12, 23], "BaseFontBlend", "delta", null], [[12, 31], "CIDFontVersion", "num", 0], [[12, 32], "CIDFontRevision", "num", 0], [[12, 33], "CIDFontType", "num", 0], [[12, 34], "CIDCount", "num", 8720], [[12, 35], "UIDBase", "num", null], [[12, 37], "FDSelect", "offset", null], [[12, 36], "FDArray", "offset", null], [[12, 38], "FontName", "sid", null]], d = null; a.prototype = Object.create(c.prototype); return a }(), F = function () { function a(f) { null === d && (d = c.createTables(b)); c.call(this, d, f); this.subrsIndex = null } var b = [[6, "BlueValues", "delta", null], [7, "OtherBlues", "delta", null], [8, "FamilyBlues", "delta", null], [9, "FamilyOtherBlues", "delta", null], [[12, 9], "BlueScale", "num", .039625], [[12, 10], "BlueShift", "num", 7], [[12, 11], "BlueFuzz", "num", 1], [10, "StdHW", "num", null], [11, "StdVW", "num", null], [[12, 12], "StemSnapH", "delta", null], [[12, 13], "StemSnapV", "delta", null], [[12, 14], "ForceBold", "num", 0], [[12, 17], "LanguageGroup", "num", 0], [[12, 18], "ExpansionFactor", "num", .06], [[12, 19], "initialRandomSeed", "num", 0], [20, "defaultWidthX", "num", 0], [21, "nominalWidthX", "num", 0], [19, "Subrs", "offset", null]], d = null; a.prototype = Object.create(c.prototype); return a }(), n = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 }, A = function () { return function (a, b, d, g) { this.predefined = a; this.format = b; this.charset = d; this.raw = g } }(), g = function () { return function (a, b, d, g) { this.predefined = a; this.format = b; this.encoding = d; this.raw = g } }(), m = function () { function a(b, f) { this.fdSelect = b; this.raw = f } a.prototype = { getFDIndex: function (a) { return 0 > a || a >= this.fdSelect.length ? -1 : this.fdSelect[a] } }; return a }(), d = function () { function b() { this.offsets = Object.create(null) } b.prototype = { isTracking: function (a) { return a in this.offsets }, track: function (b, f) { b in this.offsets && a("Already tracking location of " + b); this.offsets[b] = f }, offset: function (a) { for (var b in this.offsets) this.offsets[b] += a }, setEntryLocation: function (b, f, d) { b in this.offsets || a("Not tracking location of " + b); d = d.data; b = this.offsets[b]; for (var g = 0, m = f.length; g < m; ++g) { var k = 5 * g + b, c = k + 1, t = k + 2, x = k + 3, h = k + 4; 29 === d[k] && 0 === d[c] && 0 === d[t] && 0 === d[x] && 0 === d[h] || a("writing to an offset that is not empty"); var z = f[g]; d[k] = 29; d[c] = z >> 24 & 255; d[t] = z >> 16 & 255; d[x] = z >> 8 & 255; d[h] = z & 255 } } }; return b }(); R = function () { function b(a) { this.cff = a } b.prototype = { compile: function () { var a = this.cff, b = { data: [], length: 0, add: function (a) { this.data = this.data.concat(a); this.length = this.data.length } }, f = this.compileHeader(a.header); b.add(f); f = this.compileNameIndex(a.names); b.add(f); if (a.isCIDFont && a.topDict.hasName("FontMatrix")) { f = a.topDict.getByName("FontMatrix"); a.topDict.removeByName("FontMatrix"); for (var d = 0, g = a.fdArray.length; d < g; d++) { var m = a.fdArray[d], k = f.slice(0); m.hasName("FontMatrix") && (k = I.transform(k, m.getByName("FontMatrix"))); m.setByName("FontMatrix", k) } } d = this.compileTopDicts([a.topDict], b.length, a.isCIDFont); b.add(d.output); f = d.trackers[0]; d = this.compileStringIndex(a.strings.strings); b.add(d); d = this.compileIndex(a.globalSubrIndex); b.add(d); a.encoding && a.topDict.hasName("Encoding") && (a.encoding.predefined ? f.setEntryLocation("Encoding", [a.encoding.format], b) : (d = this.compileEncoding(a.encoding), f.setEntryLocation("Encoding", [b.length], b), b.add(d))); a.charset && a.topDict.hasName("charset") && (a.charset.predefined ? f.setEntryLocation("charset", [a.charset.format], b) : (d = this.compileCharset(a.charset), f.setEntryLocation("charset", [b.length], b), b.add(d))); d = this.compileCharStrings(a.charStrings); f.setEntryLocation("CharStrings", [b.length], b); b.add(d); a.isCIDFont && (f.setEntryLocation("FDSelect", [b.length], b), d = this.compileFDSelect(a.fdSelect.raw), b.add(d), d = this.compileTopDicts(a.fdArray, b.length, !0), f.setEntryLocation("FDArray", [b.length], b), b.add(d.output), this.compilePrivateDicts(a.fdArray, d.trackers, b)); this.compilePrivateDicts([a.topDict], [f], b); b.add([0]); return b.data }, encodeNumber: function (a) { return parseFloat(a) !== parseInt(a, 10) || isNaN(a) ? this.encodeFloat(a) : this.encodeInteger(a) }, encodeFloat: function (a) { var b = a.toString(), f = /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(b); f && (b = parseFloat("1e" + ((f[2] ? +f[2] : 0) + f[1].length)), b = (Math.round(a * b) / b).toString()); a = ""; var d, f = 0; for (d = b.length; f < d; ++f) { var g = b[f]; a = "e" === g ? a + ("-" === b[++f] ? "c" : "b") : "." === g ? a + "a" : "-" === g ? a + "e" : a + g } a += a.length & 1 ? "f" : "ff"; b = [30]; f = 0; for (d = a.length; f < d; f += 2) b.push(parseInt(a.substr(f, 2), 16)); return b }, encodeInteger: function (a) { -107 <= a && 107 >= a ? a = [a + 139] : 108 <= a && 1131 >= a ? (a = [a - 108], a = [(a >> 8) + 247, a & 255]) : -1131 <= a && -108 >= a ? (a = -a - 108, a = [(a >> 8) + 251, a & 255]) : a = -32768 <= a && 32767 >= a ? [28, a >> 8 & 255, a & 255] : [29, a >> 24 & 255, a >> 16 & 255, a >> 8 & 255, a & 255]; return a }, compileHeader: function (a) { return [a.major, a.minor, a.hdrSize, a.offSize] }, compileNameIndex: function (a) { for (var b = new h, f = 0, d = a.length; f < d; ++f) b.add(X(a[f])); return this.compileIndex(b) }, compileTopDicts: function (a, b, f) { for (var g = [], m = new h, k = 0, c = a.length; k < c; ++k) { var t = a[k]; f && (t.removeByName("CIDFontVersion"), t.removeByName("CIDFontRevision"), t.removeByName("CIDFontType"), t.removeByName("CIDCount"), t.removeByName("UIDBase")); var x = new d, t = this.compileDict(t, x); g.push(x); m.add(t); x.offset(b) } m = this.compileIndex(m, g); return { trackers: g, output: m } }, compilePrivateDicts: function (a, b, f) { for (var g = 0, m = a.length; g < m; ++g) { var k = a[g]; N(k.privateDict && k.hasName("Private"), "There must be an private dictionary."); var c = k.privateDict, k = new d, t = this.compileDict(c, k), x = f.length; k.offset(x); t.length || (x = 0); b[g].setEntryLocation("Private", [t.length, x], f); f.add(t); c.subrsIndex && c.hasName("Subrs") && (c = this.compileIndex(c.subrsIndex), k.setEntryLocation("Subrs", [t.length], f), f.add(c)) } }, compileDict: function (b, f) { for (var d = [], g = b.order, m = 0; m < g.length; ++m) { var c = g[m]; if (c in b.values) { var E = b.values[c], t = b.types[c]; k(t) || (t = [t]); k(E) || (E = [E]); if (0 !== E.length) { for (var x = 0, h = t.length; x < h; ++x) { var z = t[x], y = E[x]; switch (z) { case "num": case "sid": d = d.concat(this.encodeNumber(y)); break; case "offset": z = b.keyToNameMap[c]; f.isTracking(z) || f.track(z, d.length); d = d.concat([29, 0, 0, 0, 0]); break; case "array": case "delta": d = d.concat(this.encodeNumber(y)); z = 1; for (y = E.length; z < y; ++z) d = d.concat(this.encodeNumber(E[z])); break; default: a("Unknown data type of " + z) } } d = d.concat(b.opcodes[c]) } } } return d }, compileStringIndex: function (a) { for (var b = new h, f = 0, d = a.length; f < d; ++f) b.add(X(a[f])); return this.compileIndex(b) }, compileGlobalSubrIndex: function () { this.out.writeByteArray(this.compileIndex(this.cff.globalSubrIndex)) }, compileCharStrings: function (a) { return this.compileIndex(a) }, compileCharset: function (a) { return this.compileTypedArray(a.raw) }, compileEncoding: function (a) { return this.compileTypedArray(a.raw) }, compileFDSelect: function (a) { return this.compileTypedArray(a) }, compileTypedArray: function (a) { for (var b = [], f = 0, d = a.length; f < d; ++f) b[f] = a[f]; return b }, compileIndex: function (a, b) { b = b || []; var f = a.objects, d = f.length; if (0 === d) return [0, 0, 0]; var g = [d >> 8 & 255, d & 255], m = 1, k; for (k = 0; k < d; ++k) m += f[k].length; m = 256 > m ? 1 : 65536 > m ? 2 : 16777216 > m ? 3 : 4; g.push(m); var t = 1; for (k = 0; k < d + 1; k++) 1 === m ? g.push(t & 255) : 2 === m ? g.push(t >> 8 & 255, t & 255) : 3 === m ? g.push(t >> 16 & 255, t >> 8 & 255, t & 255) : g.push(t >>> 24 & 255, t >> 16 & 255, t >> 8 & 255, t & 255), f[k] && (t += f[k].length); for (k = 0; k < d; k++) for (b[k] && b[k].offset(g.length), m = 0, t = f[k].length; m < t; m++) g.push(f[k][m]); return g } }; return b }(); e.CFFStandardStrings = v; e.CFFParser = l; e.CFF = r; e.CFFHeader = P; e.CFFStrings = H; e.CFFIndex = h; e.CFFCharset = A; e.CFFTopDict = C; e.CFFPrivateDict = F; e.CFFCompiler = R }); (function (e, l) { l(e.pdfjsCoreChunkedStream = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.MissingDataException, O = l.arrayByteLength, a = l.arraysToBytes, b = l.assert, L = l.createPromiseCapability, Q = l.isInt, k = l.isEmptyObj, I = function () { function a(b, k, e) { this.bytes = new Uint8Array(b); this.pos = this.start = 0; this.end = b; this.chunkSize = k; this.loadedChunks = []; this.numChunksLoaded = 0; this.numChunks = Math.ceil(b / k); this.manager = e; this.progressiveDataLength = 0; this.lastSuccessfulEnsureByteChunk = -1 } a.prototype = { getMissingChunks: function () { for (var a = [], b = 0, k = this.numChunks; b < k; ++b) this.loadedChunks[b] || a.push(b); return a }, getBaseStreams: function () { return [this] }, allChunksLoaded: function () { return this.numChunksLoaded === this.numChunks }, onReceiveData: function (a, k) { var e = a + k.byteLength; b(0 === a % this.chunkSize, "Bad begin offset: " + a); var l = this.bytes.length; b(0 === e % this.chunkSize || e === l, "Bad end offset: " + e); this.bytes.set(new Uint8Array(k), a); l = this.chunkSize; e = Math.floor((e - 1) / l) + 1; for (l = Math.floor(a / l) ; l < e; ++l) this.loadedChunks[l] || (this.loadedChunks[l] = !0, ++this.numChunksLoaded) }, onReceiveProgressiveData: function (a) { var b = this.progressiveDataLength, k = Math.floor(b / this.chunkSize); this.bytes.set(new Uint8Array(a), b); this.progressiveDataLength = b += a.byteLength; for (a = b >= this.end ? this.numChunks : Math.floor(b / this.chunkSize) ; k < a; ++k) this.loadedChunks[k] || (this.loadedChunks[k] = !0, ++this.numChunksLoaded) }, ensureByte: function (a) { var b = Math.floor(a / this.chunkSize); if (b !== this.lastSuccessfulEnsureByteChunk) { if (!this.loadedChunks[b]) throw new R(a, a + 1); this.lastSuccessfulEnsureByteChunk = b } }, ensureRange: function (a, b) { if (!(a >= b || b <= this.progressiveDataLength)) for (var k = this.chunkSize, e = Math.floor((b - 1) / k) + 1, k = Math.floor(a / k) ; k < e; ++k) if (!this.loadedChunks[k]) throw new R(a, b); }, nextEmptyChunk: function (a) { for (var b, k = this.numChunks, e = 0; e < k; ++e) if (b = (a + e) % k, !this.loadedChunks[b]) return b; return null }, hasChunk: function (a) { return !!this.loadedChunks[a] }, get length() { return this.end - this.start }, get isEmpty() { return 0 === this.length }, getByte: function () { var a = this.pos; if (a >= this.end) return -1; this.ensureByte(a); return this.bytes[this.pos++] }, getUint16: function () { var a = this.getByte(), b = this.getByte(); return -1 === a || -1 === b ? -1 : (a << 8) + b }, getInt32: function () { var a = this.getByte(), b = this.getByte(), k = this.getByte(), e = this.getByte(); return (a << 24) + (b << 16) + (k << 8) + e }, getBytes: function (a) { var b = this.bytes, k = this.pos, e = this.end; if (!a) return this.ensureRange(k, e), b.subarray(k, e); a = k + a; a > e && (a = e); this.ensureRange(k, a); this.pos = a; return b.subarray(k, a) }, peekByte: function () { var a = this.getByte(); this.pos--; return a }, peekBytes: function (a) { a = this.getBytes(a); this.pos -= a.length; return a }, getByteRange: function (a, b) { this.ensureRange(a, b); return this.bytes.subarray(a, b) }, skip: function (a) { a || (a = 1); this.pos += a }, reset: function () { this.pos = this.start }, moveStart: function () { this.start = this.pos }, makeSubStream: function (a, b, k) { function e() { } this.ensureRange(a, a + b); e.prototype = Object.create(this); e.prototype.getMissingChunks = function () { for (var a = this.chunkSize, b = Math.floor((this.end - 1) / a) + 1, k = [], a = Math.floor(this.start / a) ; a < b; ++a) this.loadedChunks[a] || k.push(a); return k }; var l = new e; l.pos = l.start = a; l.end = a + b || this.end; l.dict = k; return l }, isStream: !0 }; return a }(), X = function () { function b(a, k) { var e = k.rangeChunkSize, l = k.length; this.stream = new I(l, e, this); this.length = l; this.chunkSize = e; this.pdfNetworkStream = a; this.url = k.url; this.disableAutoFetch = k.disableAutoFetch; this.msgHandler = k.msgHandler; this.currRequestId = 0; this.chunksNeededByRequest = Object.create(null); this.requestsByChunk = Object.create(null); this.promisesByRequest = Object.create(null); this.progressiveDataLength = 0; this.aborted = !1; this._loadedStreamCapability = L() } b.prototype = { onLoadedStream: function () { return this._loadedStreamCapability.promise }, sendRequest: function (b, k) { var e = this.pdfNetworkStream.getRangeReader(b, k); e.isStreamingSupported || (e.onProgress = this.onProgress.bind(this)); var l = [], J = 0, v = this; (new Promise(function (b, k) { var u = function (h) { try { if (h.done) { var c = a(l); l = null; b(c) } else { var C = h.value; l.push(C); J += O(C); if (e.isStreamingSupported) v.onProgress({ loaded: J }); e.read().then(u, k) } } catch (F) { k(F) } }; e.read().then(u, k) })).then(function (a) { if (!this.aborted) this.onReceiveData({ chunk: a, begin: b }) }.bind(this)) }, requestAllChunks: function () { var a = this.stream.getMissingChunks(); this._requestChunks(a); return this._loadedStreamCapability.promise }, _requestChunks: function (a) { var b = this.currRequestId++, e, l, J = Object.create(null); this.chunksNeededByRequest[b] = J; e = 0; for (l = a.length; e < l; e++) this.stream.hasChunk(a[e]) || (J[a[e]] = !0); if (k(J)) return Promise.resolve(); a = L(); this.promisesByRequest[b] = a; e = []; for (var v in J) v |= 0, v in this.requestsByChunk || (this.requestsByChunk[v] = [], e.push(v)), this.requestsByChunk[v].push(b); if (!e.length) return a.promise; b = this.groupChunks(e); for (e = 0; e < b.length; ++e) J = b[e], this.sendRequest(J.beginChunk * this.chunkSize, Math.min(J.endChunk * this.chunkSize, this.length)); return a.promise }, getStream: function () { return this.stream }, requestRange: function (a, b) { b = Math.min(b, this.length); for (var k = this.getBeginChunk(a), e = this.getEndChunk(b), l = []; k < e; ++k) l.push(k); return this._requestChunks(l) }, requestRanges: function (a) { a = a || []; for (var b = [], k = 0; k < a.length; k++) for (var e = this.getBeginChunk(a[k].begin), l = this.getEndChunk(a[k].end) ; e < l; ++e) 0 > b.indexOf(e) && b.push(e); b.sort(function (a, b) { return a - b }); return this._requestChunks(b) }, groupChunks: function (a) { for (var b = [], k = -1, e = -1, l = 0; l < a.length; ++l) { var v = a[l]; 0 > k && (k = v); 0 <= e && e + 1 !== v && (b.push({ beginChunk: k, endChunk: e + 1 }), k = v); l + 1 === a.length && b.push({ beginChunk: k, endChunk: v + 1 }); e = v } return b }, onProgress: function (a) { this.msgHandler.send("DocProgress", { loaded: this.stream.numChunksLoaded * this.chunkSize + a.loaded, total: this.length }) }, onReceiveData: function (a) { var b = a.chunk, e = void 0 === a.begin, l = e ? this.progressiveDataLength : a.begin, J = l + b.byteLength, v = Math.floor(l / this.chunkSize); a = J < this.length ? Math.floor(J / this.chunkSize) : Math.ceil(J / this.chunkSize); if (e) this.stream.onReceiveProgressiveData(b), this.progressiveDataLength = J; else this.stream.onReceiveData(l, b); this.stream.allChunksLoaded() && this._loadedStreamCapability.resolve(this.stream); e = []; for (b = v; b < a; ++b) for (J = this.requestsByChunk[b] || [], delete this.requestsByChunk[b], v = 0; v < J.length; ++v) { var l = J[v], r = this.chunksNeededByRequest[l]; b in r && delete r[b]; k(r) && e.push(l) } if (!this.disableAutoFetch && k(this.requestsByChunk)) { var P; 1 === this.stream.numChunksLoaded ? (b = this.stream.numChunks - 1, this.stream.hasChunk(b) || (P = b)) : P = this.stream.nextEmptyChunk(a); Q(P) && this._requestChunks([P]) } for (v = 0; v < e.length; ++v) l = e[v], P = this.promisesByRequest[l], delete this.promisesByRequest[l], P.resolve(); this.msgHandler.send("DocProgress", { loaded: this.stream.numChunksLoaded * this.chunkSize, total: this.length }) }, onError: function (a) { this._loadedStreamCapability.reject(a) }, getBeginChunk: function (a) { return Math.floor(a / this.chunkSize) }, getEndChunk: function (a) { return Math.floor((a - 1) / this.chunkSize) + 1 }, abort: function () { this.aborted = !0; this.pdfNetworkStream && this.pdfNetworkStream.cancelAllRequests("abort"); for (var a in this.promisesByRequest) this.promisesByRequest[a].reject(Error("Request was aborted")) } }; return b }(); e.ChunkedStream = I; e.ChunkedStreamManager = X }); (function (e, l) { l(e.pdfjsCoreGlyphList = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.getLookupTableFactory, O = R(function (a) { a.A = 65; a.AE = 198; a.AEacute = 508; a.AEmacron = 482; a.AEsmall = 63462; a.Aacute = 193; a.Aacutesmall = 63457; a.Abreve = 258; a.Abreveacute = 7854; a.Abrevecyrillic = 1232; a.Abrevedotbelow = 7862; a.Abrevegrave = 7856; a.Abrevehookabove = 7858; a.Abrevetilde = 7860; a.Acaron = 461; a.Acircle = 9398; a.Acircumflex = 194; a.Acircumflexacute = 7844; a.Acircumflexdotbelow = 7852; a.Acircumflexgrave = 7846; a.Acircumflexhookabove = 7848; a.Acircumflexsmall = 63458; a.Acircumflextilde = 7850; a.Acute = 63177; a.Acutesmall = 63412; a.Acyrillic = 1040; a.Adblgrave = 512; a.Adieresis = 196; a.Adieresiscyrillic = 1234; a.Adieresismacron = 478; a.Adieresissmall = 63460; a.Adotbelow = 7840; a.Adotmacron = 480; a.Agrave = 192; a.Agravesmall = 63456; a.Ahookabove = 7842; a.Aiecyrillic = 1236; a.Ainvertedbreve = 514; a.Alpha = 913; a.Alphatonos = 902; a.Amacron = 256; a.Amonospace = 65313; a.Aogonek = 260; a.Aring = 197; a.Aringacute = 506; a.Aringbelow = 7680; a.Aringsmall = 63461; a.Asmall = 63329; a.Atilde = 195; a.Atildesmall = 63459; a.Aybarmenian = 1329; a.B = 66; a.Bcircle = 9399; a.Bdotaccent = 7682; a.Bdotbelow = 7684; a.Becyrillic = 1041; a.Benarmenian = 1330; a.Beta = 914; a.Bhook = 385; a.Blinebelow = 7686; a.Bmonospace = 65314; a.Brevesmall = 63220; a.Bsmall = 63330; a.Btopbar = 386; a.C = 67; a.Caarmenian = 1342; a.Cacute = 262; a.Caron = 63178; a.Caronsmall = 63221; a.Ccaron = 268; a.Ccedilla = 199; a.Ccedillaacute = 7688; a.Ccedillasmall = 63463; a.Ccircle = 9400; a.Ccircumflex = 264; a.Cdot = 266; a.Cdotaccent = 266; a.Cedillasmall = 63416; a.Chaarmenian = 1353; a.Cheabkhasiancyrillic = 1212; a.Checyrillic = 1063; a.Chedescenderabkhasiancyrillic = 1214; a.Chedescendercyrillic = 1206; a.Chedieresiscyrillic = 1268; a.Cheharmenian = 1347; a.Chekhakassiancyrillic = 1227; a.Cheverticalstrokecyrillic = 1208; a.Chi = 935; a.Chook = 391; a.Circumflexsmall = 63222; a.Cmonospace = 65315; a.Coarmenian = 1361; a.Csmall = 63331; a.D = 68; a.DZ = 497; a.DZcaron = 452; a.Daarmenian = 1332; a.Dafrican = 393; a.Dcaron = 270; a.Dcedilla = 7696; a.Dcircle = 9401; a.Dcircumflexbelow = 7698; a.Dcroat = 272; a.Ddotaccent = 7690; a.Ddotbelow = 7692; a.Decyrillic = 1044; a.Deicoptic = 1006; a.Delta = 8710; a.Deltagreek = 916; a.Dhook = 394; a.Dieresis = 63179; a.DieresisAcute = 63180; a.DieresisGrave = 63181; a.Dieresissmall = 63400; a.Digammagreek = 988; a.Djecyrillic = 1026; a.Dlinebelow = 7694; a.Dmonospace = 65316; a.Dotaccentsmall = 63223; a.Dslash = 272; a.Dsmall = 63332; a.Dtopbar = 395; a.Dz = 498; a.Dzcaron = 453; a.Dzeabkhasiancyrillic = 1248; a.Dzecyrillic = 1029; a.Dzhecyrillic = 1039; a.E = 69; a.Eacute = 201; a.Eacutesmall = 63465; a.Ebreve = 276; a.Ecaron = 282; a.Ecedillabreve = 7708; a.Echarmenian = 1333; a.Ecircle = 9402; a.Ecircumflex = 202; a.Ecircumflexacute = 7870; a.Ecircumflexbelow = 7704; a.Ecircumflexdotbelow = 7878; a.Ecircumflexgrave = 7872; a.Ecircumflexhookabove = 7874; a.Ecircumflexsmall = 63466; a.Ecircumflextilde = 7876; a.Ecyrillic = 1028; a.Edblgrave = 516; a.Edieresis = 203; a.Edieresissmall = 63467; a.Edot = 278; a.Edotaccent = 278; a.Edotbelow = 7864; a.Efcyrillic = 1060; a.Egrave = 200; a.Egravesmall = 63464; a.Eharmenian = 1335; a.Ehookabove = 7866; a.Eightroman = 8551; a.Einvertedbreve = 518; a.Eiotifiedcyrillic = 1124; a.Elcyrillic = 1051; a.Elevenroman = 8554; a.Emacron = 274; a.Emacronacute = 7702; a.Emacrongrave = 7700; a.Emcyrillic = 1052; a.Emonospace = 65317; a.Encyrillic = 1053; a.Endescendercyrillic = 1186; a.Eng = 330; a.Enghecyrillic = 1188; a.Enhookcyrillic = 1223; a.Eogonek = 280; a.Eopen = 400; a.Epsilon = 917; a.Epsilontonos = 904; a.Ercyrillic = 1056; a.Ereversed = 398; a.Ereversedcyrillic = 1069; a.Escyrillic = 1057; a.Esdescendercyrillic = 1194; a.Esh = 425; a.Esmall = 63333; a.Eta = 919; a.Etarmenian = 1336; a.Etatonos = 905; a.Eth = 208; a.Ethsmall = 63472; a.Etilde = 7868; a.Etildebelow = 7706; a.Euro = 8364; a.Ezh = 439; a.Ezhcaron = 494; a.Ezhreversed = 440; a.F = 70; a.Fcircle = 9403; a.Fdotaccent = 7710; a.Feharmenian = 1366; a.Feicoptic = 996; a.Fhook = 401; a.Fitacyrillic = 1138; a.Fiveroman = 8548; a.Fmonospace = 65318; a.Fourroman = 8547; a.Fsmall = 63334; a.G = 71; a.GBsquare = 13191; a.Gacute = 500; a.Gamma = 915; a.Gammaafrican = 404; a.Gangiacoptic = 1002; a.Gbreve = 286; a.Gcaron = 486; a.Gcedilla = 290; a.Gcircle = 9404; a.Gcircumflex = 284; a.Gcommaaccent = 290; a.Gdot = 288; a.Gdotaccent = 288; a.Gecyrillic = 1043; a.Ghadarmenian = 1346; a.Ghemiddlehookcyrillic = 1172; a.Ghestrokecyrillic = 1170; a.Gheupturncyrillic = 1168; a.Ghook = 403; a.Gimarmenian = 1331; a.Gjecyrillic = 1027; a.Gmacron = 7712; a.Gmonospace = 65319; a.Grave = 63182; a.Gravesmall = 63328; a.Gsmall = 63335; a.Gsmallhook = 667; a.Gstroke = 484; a.H = 72; a.H18533 = 9679; a.H18543 = 9642; a.H18551 = 9643; a.H22073 = 9633; a.HPsquare = 13259; a.Haabkhasiancyrillic = 1192; a.Hadescendercyrillic = 1202; a.Hardsigncyrillic = 1066; a.Hbar = 294; a.Hbrevebelow = 7722; a.Hcedilla = 7720; a.Hcircle = 9405; a.Hcircumflex = 292; a.Hdieresis = 7718; a.Hdotaccent = 7714; a.Hdotbelow = 7716; a.Hmonospace = 65320; a.Hoarmenian = 1344; a.Horicoptic = 1E3; a.Hsmall = 63336; a.Hungarumlaut = 63183; a.Hungarumlautsmall = 63224; a.Hzsquare = 13200; a.I = 73; a.IAcyrillic = 1071; a.IJ = 306; a.IUcyrillic = 1070; a.Iacute = 205; a.Iacutesmall = 63469; a.Ibreve = 300; a.Icaron = 463; a.Icircle = 9406; a.Icircumflex = 206; a.Icircumflexsmall = 63470; a.Icyrillic = 1030; a.Idblgrave = 520; a.Idieresis = 207; a.Idieresisacute = 7726; a.Idieresiscyrillic = 1252; a.Idieresissmall = 63471; a.Idot = 304; a.Idotaccent = 304; a.Idotbelow = 7882; a.Iebrevecyrillic = 1238; a.Iecyrillic = 1045; a.Ifraktur = 8465; a.Igrave = 204; a.Igravesmall = 63468; a.Ihookabove = 7880; a.Iicyrillic = 1048; a.Iinvertedbreve = 522; a.Iishortcyrillic = 1049; a.Imacron = 298; a.Imacroncyrillic = 1250; a.Imonospace = 65321; a.Iniarmenian = 1339; a.Iocyrillic = 1025; a.Iogonek = 302; a.Iota = 921; a.Iotaafrican = 406; a.Iotadieresis = 938; a.Iotatonos = 906; a.Ismall = 63337; a.Istroke = 407; a.Itilde = 296; a.Itildebelow = 7724; a.Izhitsacyrillic = 1140; a.Izhitsadblgravecyrillic = 1142; a.J = 74; a.Jaarmenian = 1345; a.Jcircle = 9407; a.Jcircumflex = 308; a.Jecyrillic = 1032; a.Jheharmenian = 1355; a.Jmonospace = 65322; a.Jsmall = 63338; a.K = 75; a.KBsquare = 13189; a.KKsquare = 13261; a.Kabashkircyrillic = 1184; a.Kacute = 7728; a.Kacyrillic = 1050; a.Kadescendercyrillic = 1178; a.Kahookcyrillic = 1219; a.Kappa = 922; a.Kastrokecyrillic = 1182; a.Kaverticalstrokecyrillic = 1180; a.Kcaron = 488; a.Kcedilla = 310; a.Kcircle = 9408; a.Kcommaaccent = 310; a.Kdotbelow = 7730; a.Keharmenian = 1364; a.Kenarmenian = 1343; a.Khacyrillic = 1061; a.Kheicoptic = 998; a.Khook = 408; a.Kjecyrillic = 1036; a.Klinebelow = 7732; a.Kmonospace = 65323; a.Koppacyrillic = 1152; a.Koppagreek = 990; a.Ksicyrillic = 1134; a.Ksmall = 63339; a.L = 76; a.LJ = 455; a.LL = 63167; a.Lacute = 313; a.Lambda = 923; a.Lcaron = 317; a.Lcedilla = 315; a.Lcircle = 9409; a.Lcircumflexbelow = 7740; a.Lcommaaccent = 315; a.Ldot = 319; a.Ldotaccent = 319; a.Ldotbelow = 7734; a.Ldotbelowmacron = 7736; a.Liwnarmenian = 1340; a.Lj = 456; a.Ljecyrillic = 1033; a.Llinebelow = 7738; a.Lmonospace = 65324; a.Lslash = 321; a.Lslashsmall = 63225; a.Lsmall = 63340; a.M = 77; a.MBsquare = 13190; a.Macron = 63184; a.Macronsmall = 63407; a.Macute = 7742; a.Mcircle = 9410; a.Mdotaccent = 7744; a.Mdotbelow = 7746; a.Menarmenian = 1348; a.Mmonospace = 65325; a.Msmall = 63341; a.Mturned = 412; a.Mu = 924; a.N = 78; a.NJ = 458; a.Nacute = 323; a.Ncaron = 327; a.Ncedilla = 325; a.Ncircle = 9411; a.Ncircumflexbelow = 7754; a.Ncommaaccent = 325; a.Ndotaccent = 7748; a.Ndotbelow = 7750; a.Nhookleft = 413; a.Nineroman = 8552; a.Nj = 459; a.Njecyrillic = 1034; a.Nlinebelow = 7752; a.Nmonospace = 65326; a.Nowarmenian = 1350; a.Nsmall = 63342; a.Ntilde = 209; a.Ntildesmall = 63473; a.Nu = 925; a.O = 79; a.OE = 338; a.OEsmall = 63226; a.Oacute = 211; a.Oacutesmall = 63475; a.Obarredcyrillic = 1256; a.Obarreddieresiscyrillic = 1258; a.Obreve = 334; a.Ocaron = 465; a.Ocenteredtilde = 415; a.Ocircle = 9412; a.Ocircumflex = 212; a.Ocircumflexacute = 7888; a.Ocircumflexdotbelow = 7896; a.Ocircumflexgrave = 7890; a.Ocircumflexhookabove = 7892; a.Ocircumflexsmall = 63476; a.Ocircumflextilde = 7894; a.Ocyrillic = 1054; a.Odblacute = 336; a.Odblgrave = 524; a.Odieresis = 214; a.Odieresiscyrillic = 1254; a.Odieresissmall = 63478; a.Odotbelow = 7884; a.Ogoneksmall = 63227; a.Ograve = 210; a.Ogravesmall = 63474; a.Oharmenian = 1365; a.Ohm = 8486; a.Ohookabove = 7886; a.Ohorn = 416; a.Ohornacute = 7898; a.Ohorndotbelow = 7906; a.Ohorngrave = 7900; a.Ohornhookabove = 7902; a.Ohorntilde = 7904; a.Ohungarumlaut = 336; a.Oi = 418; a.Oinvertedbreve = 526; a.Omacron = 332; a.Omacronacute = 7762; a.Omacrongrave = 7760; a.Omega = 8486; a.Omegacyrillic = 1120; a.Omegagreek = 937; a.Omegaroundcyrillic = 1146; a.Omegatitlocyrillic = 1148; a.Omegatonos = 911; a.Omicron = 927; a.Omicrontonos = 908; a.Omonospace = 65327; a.Oneroman = 8544; a.Oogonek = 490; a.Oogonekmacron = 492; a.Oopen = 390; a.Oslash = 216; a.Oslashacute = 510; a.Oslashsmall = 63480; a.Osmall = 63343; a.Ostrokeacute = 510; a.Otcyrillic = 1150; a.Otilde = 213; a.Otildeacute = 7756; a.Otildedieresis = 7758; a.Otildesmall = 63477; a.P = 80; a.Pacute = 7764; a.Pcircle = 9413; a.Pdotaccent = 7766; a.Pecyrillic = 1055; a.Peharmenian = 1354; a.Pemiddlehookcyrillic = 1190; a.Phi = 934; a.Phook = 420; a.Pi = 928; a.Piwrarmenian = 1363; a.Pmonospace = 65328; a.Psi = 936; a.Psicyrillic = 1136; a.Psmall = 63344; a.Q = 81; a.Qcircle = 9414; a.Qmonospace = 65329; a.Qsmall = 63345; a.R = 82; a.Raarmenian = 1356; a.Racute = 340; a.Rcaron = 344; a.Rcedilla = 342; a.Rcircle = 9415; a.Rcommaaccent = 342; a.Rdblgrave = 528; a.Rdotaccent = 7768; a.Rdotbelow = 7770; a.Rdotbelowmacron = 7772; a.Reharmenian = 1360; a.Rfraktur = 8476; a.Rho = 929; a.Ringsmall = 63228; a.Rinvertedbreve = 530; a.Rlinebelow = 7774; a.Rmonospace = 65330; a.Rsmall = 63346; a.Rsmallinverted = 641; a.Rsmallinvertedsuperior = 694; a.S = 83; a.SF010000 = 9484; a.SF020000 = 9492; a.SF030000 = 9488; a.SF040000 = 9496; a.SF050000 = 9532; a.SF060000 = 9516; a.SF070000 = 9524; a.SF080000 = 9500; a.SF090000 = 9508; a.SF100000 = 9472; a.SF110000 = 9474; a.SF190000 = 9569; a.SF200000 = 9570; a.SF210000 = 9558; a.SF220000 = 9557; a.SF230000 = 9571; a.SF240000 = 9553; a.SF250000 = 9559; a.SF260000 = 9565; a.SF270000 = 9564; a.SF280000 = 9563; a.SF360000 = 9566; a.SF370000 = 9567; a.SF380000 = 9562; a.SF390000 = 9556; a.SF400000 = 9577; a.SF410000 = 9574; a.SF420000 = 9568; a.SF430000 = 9552; a.SF440000 = 9580; a.SF450000 = 9575; a.SF460000 = 9576; a.SF470000 = 9572; a.SF480000 = 9573; a.SF490000 = 9561; a.SF500000 = 9560; a.SF510000 = 9554; a.SF520000 = 9555; a.SF530000 = 9579; a.SF540000 = 9578; a.Sacute = 346; a.Sacutedotaccent = 7780; a.Sampigreek = 992; a.Scaron = 352; a.Scarondotaccent = 7782; a.Scaronsmall = 63229; a.Scedilla = 350; a.Schwa = 399; a.Schwacyrillic = 1240; a.Schwadieresiscyrillic = 1242; a.Scircle = 9416; a.Scircumflex = 348; a.Scommaaccent = 536; a.Sdotaccent = 7776; a.Sdotbelow = 7778; a.Sdotbelowdotaccent = 7784; a.Seharmenian = 1357; a.Sevenroman = 8550; a.Shaarmenian = 1351; a.Shacyrillic = 1064; a.Shchacyrillic = 1065; a.Sheicoptic = 994; a.Shhacyrillic = 1210; a.Shimacoptic = 1004; a.Sigma = 931; a.Sixroman = 8549; a.Smonospace = 65331; a.Softsigncyrillic = 1068; a.Ssmall = 63347; a.Stigmagreek = 986; a.T = 84; a.Tau = 932; a.Tbar = 358; a.Tcaron = 356; a.Tcedilla = 354; a.Tcircle = 9417; a.Tcircumflexbelow = 7792; a.Tcommaaccent = 354; a.Tdotaccent = 7786; a.Tdotbelow = 7788; a.Tecyrillic = 1058; a.Tedescendercyrillic = 1196; a.Tenroman = 8553; a.Tetsecyrillic = 1204; a.Theta = 920; a.Thook = 428; a.Thorn = 222; a.Thornsmall = 63486; a.Threeroman = 8546; a.Tildesmall = 63230; a.Tiwnarmenian = 1359; a.Tlinebelow = 7790; a.Tmonospace = 65332; a.Toarmenian = 1337; a.Tonefive = 444; a.Tonesix = 388; a.Tonetwo = 423; a.Tretroflexhook = 430; a.Tsecyrillic = 1062; a.Tshecyrillic = 1035; a.Tsmall = 63348; a.Twelveroman = 8555; a.Tworoman = 8545; a.U = 85; a.Uacute = 218; a.Uacutesmall = 63482; a.Ubreve = 364; a.Ucaron = 467; a.Ucircle = 9418; a.Ucircumflex = 219; a.Ucircumflexbelow = 7798; a.Ucircumflexsmall = 63483; a.Ucyrillic = 1059; a.Udblacute = 368; a.Udblgrave = 532; a.Udieresis = 220; a.Udieresisacute = 471; a.Udieresisbelow = 7794; a.Udieresiscaron = 473; a.Udieresiscyrillic = 1264; a.Udieresisgrave = 475; a.Udieresismacron = 469; a.Udieresissmall = 63484; a.Udotbelow = 7908; a.Ugrave = 217; a.Ugravesmall = 63481; a.Uhookabove = 7910; a.Uhorn = 431; a.Uhornacute = 7912; a.Uhorndotbelow = 7920; a.Uhorngrave = 7914; a.Uhornhookabove = 7916; a.Uhorntilde = 7918; a.Uhungarumlaut = 368; a.Uhungarumlautcyrillic = 1266; a.Uinvertedbreve = 534; a.Ukcyrillic = 1144; a.Umacron = 362; a.Umacroncyrillic = 1262; a.Umacrondieresis = 7802; a.Umonospace = 65333; a.Uogonek = 370; a.Upsilon = 933; a.Upsilon1 = 978; a.Upsilonacutehooksymbolgreek = 979; a.Upsilonafrican = 433; a.Upsilondieresis = 939; a.Upsilondieresishooksymbolgreek = 980; a.Upsilonhooksymbol = 978; a.Upsilontonos = 910; a.Uring = 366; a.Ushortcyrillic = 1038; a.Usmall = 63349; a.Ustraightcyrillic = 1198; a.Ustraightstrokecyrillic = 1200; a.Utilde = 360; a.Utildeacute = 7800; a.Utildebelow = 7796; a.V = 86; a.Vcircle = 9419; a.Vdotbelow = 7806; a.Vecyrillic = 1042; a.Vewarmenian = 1358; a.Vhook = 434; a.Vmonospace = 65334; a.Voarmenian = 1352; a.Vsmall = 63350; a.Vtilde = 7804; a.W = 87; a.Wacute = 7810; a.Wcircle = 9420; a.Wcircumflex = 372; a.Wdieresis = 7812; a.Wdotaccent = 7814; a.Wdotbelow = 7816; a.Wgrave = 7808; a.Wmonospace = 65335; a.Wsmall = 63351; a.X = 88; a.Xcircle = 9421; a.Xdieresis = 7820; a.Xdotaccent = 7818; a.Xeharmenian = 1341; a.Xi = 926; a.Xmonospace = 65336; a.Xsmall = 63352; a.Y = 89; a.Yacute = 221; a.Yacutesmall = 63485; a.Yatcyrillic = 1122; a.Ycircle = 9422; a.Ycircumflex = 374; a.Ydieresis = 376; a.Ydieresissmall = 63487; a.Ydotaccent = 7822; a.Ydotbelow = 7924; a.Yericyrillic = 1067; a.Yerudieresiscyrillic = 1272; a.Ygrave = 7922; a.Yhook = 435; a.Yhookabove = 7926; a.Yiarmenian = 1349; a.Yicyrillic = 1031; a.Yiwnarmenian = 1362; a.Ymonospace = 65337; a.Ysmall = 63353; a.Ytilde = 7928; a.Yusbigcyrillic = 1130; a.Yusbigiotifiedcyrillic = 1132; a.Yuslittlecyrillic = 1126; a.Yuslittleiotifiedcyrillic = 1128; a.Z = 90; a.Zaarmenian = 1334; a.Zacute = 377; a.Zcaron = 381; a.Zcaronsmall = 63231; a.Zcircle = 9423; a.Zcircumflex = 7824; a.Zdot = 379; a.Zdotaccent = 379; a.Zdotbelow = 7826; a.Zecyrillic = 1047; a.Zedescendercyrillic = 1176; a.Zedieresiscyrillic = 1246; a.Zeta = 918; a.Zhearmenian = 1338; a.Zhebrevecyrillic = 1217; a.Zhecyrillic = 1046; a.Zhedescendercyrillic = 1174; a.Zhedieresiscyrillic = 1244; a.Zlinebelow = 7828; a.Zmonospace = 65338; a.Zsmall = 63354; a.Zstroke = 437; a.a = 97; a.aabengali = 2438; a.aacute = 225; a.aadeva = 2310; a.aagujarati = 2694; a.aagurmukhi = 2566; a.aamatragurmukhi = 2622; a.aarusquare = 13059; a.aavowelsignbengali = 2494; a.aavowelsigndeva = 2366; a.aavowelsigngujarati = 2750; a.abbreviationmarkarmenian = 1375; a.abbreviationsigndeva = 2416; a.abengali = 2437; a.abopomofo = 12570; a.abreve = 259; a.abreveacute = 7855; a.abrevecyrillic = 1233; a.abrevedotbelow = 7863; a.abrevegrave = 7857; a.abrevehookabove = 7859; a.abrevetilde = 7861; a.acaron = 462; a.acircle = 9424; a.acircumflex = 226; a.acircumflexacute = 7845; a.acircumflexdotbelow = 7853; a.acircumflexgrave = 7847; a.acircumflexhookabove = 7849; a.acircumflextilde = 7851; a.acute = 180; a.acutebelowcmb = 791; a.acutecmb = 769; a.acutecomb = 769; a.acutedeva = 2388; a.acutelowmod = 719; a.acutetonecmb = 833; a.acyrillic = 1072; a.adblgrave = 513; a.addakgurmukhi = 2673; a.adeva = 2309; a.adieresis = 228; a.adieresiscyrillic = 1235; a.adieresismacron = 479; a.adotbelow = 7841; a.adotmacron = 481; a.ae = 230; a.aeacute = 509; a.aekorean = 12624; a.aemacron = 483; a.afii00208 = 8213; a.afii08941 = 8356; a.afii10017 = 1040; a.afii10018 = 1041; a.afii10019 = 1042; a.afii10020 = 1043; a.afii10021 = 1044; a.afii10022 = 1045; a.afii10023 = 1025; a.afii10024 = 1046; a.afii10025 = 1047; a.afii10026 = 1048; a.afii10027 = 1049; a.afii10028 = 1050; a.afii10029 = 1051; a.afii10030 = 1052; a.afii10031 = 1053; a.afii10032 = 1054; a.afii10033 = 1055; a.afii10034 = 1056; a.afii10035 = 1057; a.afii10036 = 1058; a.afii10037 = 1059; a.afii10038 = 1060; a.afii10039 = 1061; a.afii10040 = 1062; a.afii10041 = 1063; a.afii10042 = 1064; a.afii10043 = 1065; a.afii10044 = 1066; a.afii10045 = 1067; a.afii10046 = 1068; a.afii10047 = 1069; a.afii10048 = 1070; a.afii10049 = 1071; a.afii10050 = 1168; a.afii10051 = 1026; a.afii10052 = 1027; a.afii10053 = 1028; a.afii10054 = 1029; a.afii10055 = 1030; a.afii10056 = 1031; a.afii10057 = 1032; a.afii10058 = 1033; a.afii10059 = 1034; a.afii10060 = 1035; a.afii10061 = 1036; a.afii10062 = 1038; a.afii10063 = 63172; a.afii10064 = 63173; a.afii10065 = 1072; a.afii10066 = 1073; a.afii10067 = 1074; a.afii10068 = 1075; a.afii10069 = 1076; a.afii10070 = 1077; a.afii10071 = 1105; a.afii10072 = 1078; a.afii10073 = 1079; a.afii10074 = 1080; a.afii10075 = 1081; a.afii10076 = 1082; a.afii10077 = 1083; a.afii10078 = 1084; a.afii10079 = 1085; a.afii10080 = 1086; a.afii10081 = 1087; a.afii10082 = 1088; a.afii10083 = 1089; a.afii10084 = 1090; a.afii10085 = 1091; a.afii10086 = 1092; a.afii10087 = 1093; a.afii10088 = 1094; a.afii10089 = 1095; a.afii10090 = 1096; a.afii10091 = 1097; a.afii10092 = 1098; a.afii10093 = 1099; a.afii10094 = 1100; a.afii10095 = 1101; a.afii10096 = 1102; a.afii10097 = 1103; a.afii10098 = 1169; a.afii10099 = 1106; a.afii10100 = 1107; a.afii10101 = 1108; a.afii10102 = 1109; a.afii10103 = 1110; a.afii10104 = 1111; a.afii10105 = 1112; a.afii10106 = 1113; a.afii10107 = 1114; a.afii10108 = 1115; a.afii10109 = 1116; a.afii10110 = 1118; a.afii10145 = 1039; a.afii10146 = 1122; a.afii10147 = 1138; a.afii10148 = 1140; a.afii10192 = 63174; a.afii10193 = 1119; a.afii10194 = 1123; a.afii10195 = 1139; a.afii10196 = 1141; a.afii10831 = 63175; a.afii10832 = 63176; a.afii10846 = 1241; a.afii299 = 8206; a.afii300 = 8207; a.afii301 = 8205; a.afii57381 = 1642; a.afii57388 = 1548; a.afii57392 = 1632; a.afii57393 = 1633; a.afii57394 = 1634; a.afii57395 = 1635; a.afii57396 = 1636; a.afii57397 = 1637; a.afii57398 = 1638; a.afii57399 = 1639; a.afii57400 = 1640; a.afii57401 = 1641; a.afii57403 = 1563; a.afii57407 = 1567; a.afii57409 = 1569; a.afii57410 = 1570; a.afii57411 = 1571; a.afii57412 = 1572; a.afii57413 = 1573; a.afii57414 = 1574; a.afii57415 = 1575; a.afii57416 = 1576; a.afii57417 = 1577; a.afii57418 = 1578; a.afii57419 = 1579; a.afii57420 = 1580; a.afii57421 = 1581; a.afii57422 = 1582; a.afii57423 = 1583; a.afii57424 = 1584; a.afii57425 = 1585; a.afii57426 = 1586; a.afii57427 = 1587; a.afii57428 = 1588; a.afii57429 = 1589; a.afii57430 = 1590; a.afii57431 = 1591; a.afii57432 = 1592; a.afii57433 = 1593; a.afii57434 = 1594; a.afii57440 = 1600; a.afii57441 = 1601; a.afii57442 = 1602; a.afii57443 = 1603; a.afii57444 = 1604; a.afii57445 = 1605; a.afii57446 = 1606; a.afii57448 = 1608; a.afii57449 = 1609; a.afii57450 = 1610; a.afii57451 = 1611; a.afii57452 = 1612; a.afii57453 = 1613; a.afii57454 = 1614; a.afii57455 = 1615; a.afii57456 = 1616; a.afii57457 = 1617; a.afii57458 = 1618; a.afii57470 = 1607; a.afii57505 = 1700; a.afii57506 = 1662; a.afii57507 = 1670; a.afii57508 = 1688; a.afii57509 = 1711; a.afii57511 = 1657; a.afii57512 = 1672; a.afii57513 = 1681; a.afii57514 = 1722; a.afii57519 = 1746; a.afii57534 = 1749; a.afii57636 = 8362; a.afii57645 = 1470; a.afii57658 = 1475; a.afii57664 = 1488; a.afii57665 = 1489; a.afii57666 = 1490; a.afii57667 = 1491; a.afii57668 = 1492; a.afii57669 = 1493; a.afii57670 = 1494; a.afii57671 = 1495; a.afii57672 = 1496; a.afii57673 = 1497; a.afii57674 = 1498; a.afii57675 = 1499; a.afii57676 = 1500; a.afii57677 = 1501; a.afii57678 = 1502; a.afii57679 = 1503; a.afii57680 = 1504; a.afii57681 = 1505; a.afii57682 = 1506; a.afii57683 = 1507; a.afii57684 = 1508; a.afii57685 = 1509; a.afii57686 = 1510; a.afii57687 = 1511; a.afii57688 = 1512; a.afii57689 = 1513; a.afii57690 = 1514; a.afii57694 = 64298; a.afii57695 = 64299; a.afii57700 = 64331; a.afii57705 = 64287; a.afii57716 = 1520; a.afii57717 = 1521; a.afii57718 = 1522; a.afii57723 = 64309; a.afii57793 = 1460; a.afii57794 = 1461; a.afii57795 = 1462; a.afii57796 = 1467; a.afii57797 = 1464; a.afii57798 = 1463; a.afii57799 = 1456; a.afii57800 = 1458; a.afii57801 = 1457; a.afii57802 = 1459; a.afii57803 = 1474; a.afii57804 = 1473; a.afii57806 = 1465; a.afii57807 = 1468; a.afii57839 = 1469; a.afii57841 = 1471; a.afii57842 = 1472; a.afii57929 = 700; a.afii61248 = 8453; a.afii61289 = 8467; a.afii61352 = 8470; a.afii61573 = 8236; a.afii61574 = 8237; a.afii61575 = 8238; a.afii61664 = 8204; a.afii63167 = 1645; a.afii64937 = 701; a.agrave = 224; a.agujarati = 2693; a.agurmukhi = 2565; a.ahiragana = 12354; a.ahookabove = 7843; a.aibengali = 2448; a.aibopomofo = 12574; a.aideva = 2320; a.aiecyrillic = 1237; a.aigujarati = 2704; a.aigurmukhi = 2576; a.aimatragurmukhi = 2632; a.ainarabic = 1593; a.ainfinalarabic = 65226; a.aininitialarabic = 65227; a.ainmedialarabic = 65228; a.ainvertedbreve = 515; a.aivowelsignbengali = 2504; a.aivowelsigndeva = 2376; a.aivowelsigngujarati = 2760; a.akatakana = 12450; a.akatakanahalfwidth = 65393; a.akorean = 12623; a.alef = 1488; a.alefarabic = 1575; a.alefdageshhebrew = 64304; a.aleffinalarabic = 65166; a.alefhamzaabovearabic = 1571; a.alefhamzaabovefinalarabic = 65156; a.alefhamzabelowarabic = 1573; a.alefhamzabelowfinalarabic = 65160; a.alefhebrew = 1488; a.aleflamedhebrew = 64335; a.alefmaddaabovearabic = 1570; a.alefmaddaabovefinalarabic = 65154; a.alefmaksuraarabic = 1609; a.alefmaksurafinalarabic = 65264; a.alefmaksurainitialarabic = 65267; a.alefmaksuramedialarabic = 65268; a.alefpatahhebrew = 64302; a.alefqamatshebrew = 64303; a.aleph = 8501; a.allequal = 8780; a.alpha = 945; a.alphatonos = 940; a.amacron = 257; a.amonospace = 65345; a.ampersand = 38; a.ampersandmonospace = 65286; a.ampersandsmall = 63270; a.amsquare = 13250; a.anbopomofo = 12578; a.angbopomofo = 12580; a.angbracketleft = 12296; a.angbracketright = 12297; a.angkhankhuthai = 3674; a.angle = 8736; a.anglebracketleft = 12296; a.anglebracketleftvertical = 65087; a.anglebracketright = 12297; a.anglebracketrightvertical = 65088; a.angleleft = 9001; a.angleright = 9002; a.angstrom = 8491; a.anoteleia = 903; a.anudattadeva = 2386; a.anusvarabengali = 2434; a.anusvaradeva = 2306; a.anusvaragujarati = 2690; a.aogonek = 261; a.apaatosquare = 13056; a.aparen = 9372; a.apostrophearmenian = 1370; a.apostrophemod = 700; a.apple = 63743; a.approaches = 8784; a.approxequal = 8776; a.approxequalorimage = 8786; a.approximatelyequal = 8773; a.araeaekorean = 12686; a.araeakorean = 12685; a.arc = 8978; a.arighthalfring = 7834; a.aring = 229; a.aringacute = 507; a.aringbelow = 7681; a.arrowboth = 8596; a.arrowdashdown = 8675; a.arrowdashleft = 8672; a.arrowdashright = 8674; a.arrowdashup = 8673; a.arrowdblboth = 8660; a.arrowdbldown = 8659; a.arrowdblleft = 8656; a.arrowdblright = 8658; a.arrowdblup = 8657; a.arrowdown = 8595; a.arrowdownleft = 8601; a.arrowdownright = 8600; a.arrowdownwhite = 8681; a.arrowheaddownmod = 709; a.arrowheadleftmod = 706; a.arrowheadrightmod = 707; a.arrowheadupmod = 708; a.arrowhorizex = 63719; a.arrowleft = 8592; a.arrowleftdbl = 8656; a.arrowleftdblstroke = 8653; a.arrowleftoverright = 8646; a.arrowleftwhite = 8678; a.arrowright = 8594; a.arrowrightdblstroke = 8655; a.arrowrightheavy = 10142; a.arrowrightoverleft = 8644; a.arrowrightwhite = 8680; a.arrowtableft = 8676; a.arrowtabright = 8677; a.arrowup = 8593; a.arrowupdn = 8597; a.arrowupdnbse = 8616; a.arrowupdownbase = 8616; a.arrowupleft = 8598; a.arrowupleftofdown = 8645; a.arrowupright = 8599; a.arrowupwhite = 8679; a.arrowvertex = 63718; a.asciicircum = 94; a.asciicircummonospace = 65342; a.asciitilde = 126; a.asciitildemonospace = 65374; a.ascript = 593; a.ascriptturned = 594; a.asmallhiragana = 12353; a.asmallkatakana = 12449; a.asmallkatakanahalfwidth = 65383; a.asterisk = 42; a.asteriskaltonearabic = 1645; a.asteriskarabic = 1645; a.asteriskmath = 8727; a.asteriskmonospace = 65290; a.asterisksmall = 65121; a.asterism = 8258; a.asuperior = 63209; a.asymptoticallyequal = 8771; a.at = 64; a.atilde = 227; a.atmonospace = 65312; a.atsmall = 65131; a.aturned = 592; a.aubengali = 2452; a.aubopomofo = 12576; a.audeva = 2324; a.augujarati = 2708; a.augurmukhi = 2580; a.aulengthmarkbengali = 2519; a.aumatragurmukhi = 2636; a.auvowelsignbengali = 2508; a.auvowelsigndeva = 2380; a.auvowelsigngujarati = 2764; a.avagrahadeva = 2365; a.aybarmenian = 1377; a.ayin = 1506; a.ayinaltonehebrew = 64288; a.ayinhebrew = 1506; a.b = 98; a.babengali = 2476; a.backslash = 92; a.backslashmonospace = 65340; a.badeva = 2348; a.bagujarati = 2732; a.bagurmukhi = 2604; a.bahiragana = 12400; a.bahtthai = 3647; a.bakatakana = 12496; a.bar = 124; a.barmonospace = 65372; a.bbopomofo = 12549; a.bcircle = 9425; a.bdotaccent = 7683; a.bdotbelow = 7685; a.beamedsixteenthnotes = 9836; a.because = 8757; a.becyrillic = 1073; a.beharabic = 1576; a.behfinalarabic = 65168; a.behinitialarabic = 65169; a.behiragana = 12409; a.behmedialarabic = 65170; a.behmeeminitialarabic = 64671; a.behmeemisolatedarabic = 64520; a.behnoonfinalarabic = 64621; a.bekatakana = 12505; a.benarmenian = 1378; a.bet = 1489; a.beta = 946; a.betasymbolgreek = 976; a.betdagesh = 64305; a.betdageshhebrew = 64305; a.bethebrew = 1489; a.betrafehebrew = 64332; a.bhabengali = 2477; a.bhadeva = 2349; a.bhagujarati = 2733; a.bhagurmukhi = 2605; a.bhook = 595; a.bihiragana = 12403; a.bikatakana = 12499; a.bilabialclick = 664; a.bindigurmukhi = 2562; a.birusquare = 13105; a.blackcircle = 9679; a.blackdiamond = 9670; a.blackdownpointingtriangle = 9660; a.blackleftpointingpointer = 9668; a.blackleftpointingtriangle = 9664; a.blacklenticularbracketleft = 12304; a.blacklenticularbracketleftvertical = 65083; a.blacklenticularbracketright = 12305; a.blacklenticularbracketrightvertical = 65084; a.blacklowerlefttriangle = 9699; a.blacklowerrighttriangle = 9698; a.blackrectangle = 9644; a.blackrightpointingpointer = 9658; a.blackrightpointingtriangle = 9654; a.blacksmallsquare = 9642; a.blacksmilingface = 9787; a.blacksquare = 9632; a.blackstar = 9733; a.blackupperlefttriangle = 9700; a.blackupperrighttriangle = 9701; a.blackuppointingsmalltriangle = 9652; a.blackuppointingtriangle = 9650; a.blank = 9251; a.blinebelow = 7687; a.block = 9608; a.bmonospace = 65346; a.bobaimaithai = 3610; a.bohiragana = 12412; a.bokatakana = 12508; a.bparen = 9373; a.bqsquare = 13251; a.braceex = 63732; a.braceleft = 123; a.braceleftbt = 63731; a.braceleftmid = 63730; a.braceleftmonospace = 65371; a.braceleftsmall = 65115; a.bracelefttp = 63729; a.braceleftvertical = 65079; a.braceright = 125; a.bracerightbt = 63742; a.bracerightmid = 63741; a.bracerightmonospace = 65373; a.bracerightsmall = 65116; a.bracerighttp = 63740; a.bracerightvertical = 65080; a.bracketleft = 91; a.bracketleftbt = 63728; a.bracketleftex = 63727; a.bracketleftmonospace = 65339; a.bracketlefttp = 63726; a.bracketright = 93; a.bracketrightbt = 63739; a.bracketrightex = 63738; a.bracketrightmonospace = 65341; a.bracketrighttp = 63737; a.breve = 728; a.brevebelowcmb = 814; a.brevecmb = 774; a.breveinvertedbelowcmb = 815; a.breveinvertedcmb = 785; a.breveinverteddoublecmb = 865; a.bridgebelowcmb = 810; a.bridgeinvertedbelowcmb = 826; a.brokenbar = 166; a.bstroke = 384; a.bsuperior = 63210; a.btopbar = 387; a.buhiragana = 12406; a.bukatakana = 12502; a.bullet = 8226; a.bulletinverse = 9688; a.bulletoperator = 8729; a.bullseye = 9678; a.c = 99; a.caarmenian = 1390; a.cabengali = 2458; a.cacute = 263; a.cadeva = 2330; a.cagujarati = 2714; a.cagurmukhi = 2586; a.calsquare = 13192; a.candrabindubengali = 2433; a.candrabinducmb = 784; a.candrabindudeva = 2305; a.candrabindugujarati = 2689; a.capslock = 8682; a.careof = 8453; a.caron = 711; a.caronbelowcmb = 812; a.caroncmb = 780; a.carriagereturn = 8629; a.cbopomofo = 12568; a.ccaron = 269; a.ccedilla = 231; a.ccedillaacute = 7689; a.ccircle = 9426; a.ccircumflex = 265; a.ccurl = 597; a.cdot = 267; a.cdotaccent = 267; a.cdsquare = 13253; a.cedilla = 184; a.cedillacmb = 807; a.cent = 162; a.centigrade = 8451; a.centinferior = 63199; a.centmonospace = 65504; a.centoldstyle = 63394; a.centsuperior = 63200; a.chaarmenian = 1401; a.chabengali = 2459; a.chadeva = 2331; a.chagujarati = 2715; a.chagurmukhi = 2587; a.chbopomofo = 12564; a.cheabkhasiancyrillic = 1213; a.checkmark = 10003; a.checyrillic = 1095; a.chedescenderabkhasiancyrillic = 1215; a.chedescendercyrillic = 1207; a.chedieresiscyrillic = 1269; a.cheharmenian = 1395; a.chekhakassiancyrillic = 1228; a.cheverticalstrokecyrillic = 1209; a.chi = 967; a.chieuchacirclekorean = 12919; a.chieuchaparenkorean = 12823; a.chieuchcirclekorean = 12905; a.chieuchkorean = 12618; a.chieuchparenkorean = 12809; a.chochangthai = 3594; a.chochanthai = 3592; a.chochingthai = 3593; a.chochoethai = 3596; a.chook = 392; a.cieucacirclekorean = 12918; a.cieucaparenkorean = 12822; a.cieuccirclekorean = 12904; a.cieuckorean = 12616; a.cieucparenkorean = 12808; a.cieucuparenkorean = 12828; a.circle = 9675; a.circlecopyrt = 169; a.circlemultiply = 8855; a.circleot = 8857; a.circleplus = 8853; a.circlepostalmark = 12342; a.circlewithlefthalfblack = 9680; a.circlewithrighthalfblack = 9681; a.circumflex = 710; a.circumflexbelowcmb = 813; a.circumflexcmb = 770; a.clear = 8999; a.clickalveolar = 450; a.clickdental = 448; a.clicklateral = 449; a.clickretroflex = 451; a.club = 9827; a.clubsuitblack = 9827; a.clubsuitwhite = 9831; a.cmcubedsquare = 13220; a.cmonospace = 65347; a.cmsquaredsquare = 13216; a.coarmenian = 1409; a.colon = 58; a.colonmonetary = 8353; a.colonmonospace = 65306; a.colonsign = 8353; a.colonsmall = 65109; a.colontriangularhalfmod = 721; a.colontriangularmod = 720; a.comma = 44; a.commaabovecmb = 787; a.commaaboverightcmb = 789; a.commaaccent = 63171; a.commaarabic = 1548; a.commaarmenian = 1373; a.commainferior = 63201; a.commamonospace = 65292; a.commareversedabovecmb = 788; a.commareversedmod = 701; a.commasmall = 65104; a.commasuperior = 63202; a.commaturnedabovecmb = 786; a.commaturnedmod = 699; a.compass = 9788; a.congruent = 8773; a.contourintegral = 8750; a.control = 8963; a.controlACK = 6; a.controlBEL = 7; a.controlBS = 8; a.controlCAN = 24; a.controlCR = 13; a.controlDC1 = 17; a.controlDC2 = 18; a.controlDC3 = 19; a.controlDC4 = 20; a.controlDEL = 127; a.controlDLE = 16; a.controlEM = 25; a.controlENQ = 5; a.controlEOT = 4; a.controlESC = 27; a.controlETB = 23; a.controlETX = 3; a.controlFF = 12; a.controlFS = 28; a.controlGS = 29; a.controlHT = 9; a.controlLF = 10; a.controlNAK = 21; a.controlRS = 30; a.controlSI = 15; a.controlSO = 14; a.controlSOT = 2; a.controlSTX = 1; a.controlSUB = 26; a.controlSYN = 22; a.controlUS = 31; a.controlVT = 11; a.copyright = 169; a.copyrightsans = 63721; a.copyrightserif = 63193; a.cornerbracketleft = 12300; a.cornerbracketlefthalfwidth = 65378; a.cornerbracketleftvertical = 65089; a.cornerbracketright = 12301; a.cornerbracketrighthalfwidth = 65379; a.cornerbracketrightvertical = 65090; a.corporationsquare = 13183; a.cosquare = 13255; a.coverkgsquare = 13254; a.cparen = 9374; a.cruzeiro = 8354; a.cstretched = 663; a.curlyand = 8911; a.curlyor = 8910; a.currency = 164; a.cyrBreve = 63185; a.cyrFlex = 63186; a.cyrbreve = 63188; a.cyrflex = 63189; a.d = 100; a.daarmenian = 1380; a.dabengali = 2470; a.dadarabic = 1590; a.dadeva = 2342; a.dadfinalarabic = 65214; a.dadinitialarabic = 65215; a.dadmedialarabic = 65216; a.dagesh = 1468; a.dageshhebrew = 1468; a.dagger = 8224; a.daggerdbl = 8225; a.dagujarati = 2726; a.dagurmukhi = 2598; a.dahiragana = 12384; a.dakatakana = 12480; a.dalarabic = 1583; a.dalet = 1491; a.daletdagesh = 64307; a.daletdageshhebrew = 64307; a.dalethebrew = 1491; a.dalfinalarabic = 65194; a.dammaarabic = 1615; a.dammalowarabic = 1615; a.dammatanaltonearabic = 1612; a.dammatanarabic = 1612; a.danda = 2404; a.dargahebrew = 1447; a.dargalefthebrew = 1447; a.dasiapneumatacyrilliccmb = 1157; a.dblGrave = 63187; a.dblanglebracketleft = 12298; a.dblanglebracketleftvertical = 65085; a.dblanglebracketright = 12299; a.dblanglebracketrightvertical = 65086; a.dblarchinvertedbelowcmb = 811; a.dblarrowleft = 8660; a.dblarrowright = 8658; a.dbldanda = 2405; a.dblgrave = 63190; a.dblgravecmb = 783; a.dblintegral = 8748; a.dbllowline = 8215; a.dbllowlinecmb = 819; a.dbloverlinecmb = 831; a.dblprimemod = 698; a.dblverticalbar = 8214; a.dblverticallineabovecmb = 782; a.dbopomofo = 12553; a.dbsquare = 13256; a.dcaron = 271; a.dcedilla = 7697; a.dcircle = 9427; a.dcircumflexbelow = 7699; a.dcroat = 273; a.ddabengali = 2465; a.ddadeva = 2337; a.ddagujarati = 2721; a.ddagurmukhi = 2593; a.ddalarabic = 1672; a.ddalfinalarabic = 64393; a.dddhadeva = 2396; a.ddhabengali = 2466; a.ddhadeva = 2338; a.ddhagujarati = 2722; a.ddhagurmukhi = 2594; a.ddotaccent = 7691; a.ddotbelow = 7693; a.decimalseparatorarabic = 1643; a.decimalseparatorpersian = 1643; a.decyrillic = 1076; a.degree = 176; a.dehihebrew = 1453; a.dehiragana = 12391; a.deicoptic = 1007; a.dekatakana = 12487; a.deleteleft = 9003; a.deleteright = 8998; a.delta = 948; a.deltaturned = 397; a.denominatorminusonenumeratorbengali = 2552; a.dezh = 676; a.dhabengali = 2471; a.dhadeva = 2343; a.dhagujarati = 2727; a.dhagurmukhi = 2599; a.dhook = 599; a.dialytikatonos = 901; a.dialytikatonoscmb = 836; a.diamond = 9830; a.diamondsuitwhite = 9826; a.dieresis = 168; a.dieresisacute = 63191; a.dieresisbelowcmb = 804; a.dieresiscmb = 776; a.dieresisgrave = 63192; a.dieresistonos = 901; a.dihiragana = 12386; a.dikatakana = 12482; a.dittomark = 12291; a.divide = 247; a.divides = 8739; a.divisionslash = 8725; a.djecyrillic = 1106; a.dkshade = 9619; a.dlinebelow = 7695; a.dlsquare = 13207; a.dmacron = 273; a.dmonospace = 65348; a.dnblock = 9604; a.dochadathai = 3598; a.dodekthai = 3604; a.dohiragana = 12393; a.dokatakana = 12489; a.dollar = 36; a.dollarinferior = 63203; a.dollarmonospace = 65284; a.dollaroldstyle = 63268; a.dollarsmall = 65129; a.dollarsuperior = 63204; a.dong = 8363; a.dorusquare = 13094; a.dotaccent = 729; a.dotaccentcmb = 775; a.dotbelowcmb = 803; a.dotbelowcomb = 803; a.dotkatakana = 12539; a.dotlessi = 305; a.dotlessj = 63166; a.dotlessjstrokehook = 644; a.dotmath = 8901; a.dottedcircle = 9676; a.doubleyodpatah = 64287; a.doubleyodpatahhebrew = 64287; a.downtackbelowcmb = 798; a.downtackmod = 725; a.dparen = 9375; a.dsuperior = 63211; a.dtail = 598; a.dtopbar = 396; a.duhiragana = 12389; a.dukatakana = 12485; a.dz = 499; a.dzaltone = 675; a.dzcaron = 454; a.dzcurl = 677; a.dzeabkhasiancyrillic = 1249; a.dzecyrillic = 1109; a.dzhecyrillic = 1119; a.e = 101; a.eacute = 233; a.earth = 9793; a.ebengali = 2447; a.ebopomofo = 12572; a.ebreve = 277; a.ecandradeva = 2317; a.ecandragujarati = 2701; a.ecandravowelsigndeva = 2373; a.ecandravowelsigngujarati = 2757; a.ecaron = 283; a.ecedillabreve = 7709; a.echarmenian = 1381; a.echyiwnarmenian = 1415; a.ecircle = 9428; a.ecircumflex = 234; a.ecircumflexacute = 7871; a.ecircumflexbelow = 7705; a.ecircumflexdotbelow = 7879; a.ecircumflexgrave = 7873; a.ecircumflexhookabove = 7875; a.ecircumflextilde = 7877; a.ecyrillic = 1108; a.edblgrave = 517; a.edeva = 2319; a.edieresis = 235; a.edot = 279; a.edotaccent = 279; a.edotbelow = 7865; a.eegurmukhi = 2575; a.eematragurmukhi = 2631; a.efcyrillic = 1092; a.egrave = 232; a.egujarati = 2703; a.eharmenian = 1383; a.ehbopomofo = 12573; a.ehiragana = 12360; a.ehookabove = 7867; a.eibopomofo = 12575; a.eight = 56; a.eightarabic = 1640; a.eightbengali = 2542; a.eightcircle = 9319; a.eightcircleinversesansserif = 10129; a.eightdeva = 2414; a.eighteencircle = 9329; a.eighteenparen = 9349; a.eighteenperiod = 9369; a.eightgujarati = 2798; a.eightgurmukhi = 2670; a.eighthackarabic = 1640; a.eighthangzhou = 12328; a.eighthnotebeamed = 9835; a.eightideographicparen = 12839; a.eightinferior = 8328; a.eightmonospace = 65304; a.eightoldstyle = 63288; a.eightparen = 9339; a.eightperiod = 9359; a.eightpersian = 1784; a.eightroman = 8567; a.eightsuperior = 8312; a.eightthai = 3672; a.einvertedbreve = 519; a.eiotifiedcyrillic = 1125; a.ekatakana = 12456; a.ekatakanahalfwidth = 65396; a.ekonkargurmukhi = 2676; a.ekorean = 12628; a.elcyrillic = 1083; a.element = 8712; a.elevencircle = 9322; a.elevenparen = 9342; a.elevenperiod = 9362; a.elevenroman = 8570; a.ellipsis = 8230; a.ellipsisvertical = 8942; a.emacron = 275; a.emacronacute = 7703; a.emacrongrave = 7701; a.emcyrillic = 1084; a.emdash = 8212; a.emdashvertical = 65073; a.emonospace = 65349; a.emphasismarkarmenian = 1371; a.emptyset = 8709; a.enbopomofo = 12579; a.encyrillic = 1085; a.endash = 8211; a.endashvertical = 65074; a.endescendercyrillic = 1187; a.eng = 331; a.engbopomofo = 12581; a.enghecyrillic = 1189; a.enhookcyrillic = 1224; a.enspace = 8194; a.eogonek = 281; a.eokorean = 12627; a.eopen = 603; a.eopenclosed = 666; a.eopenreversed = 604; a.eopenreversedclosed = 606; a.eopenreversedhook = 605; a.eparen = 9376; a.epsilon = 949; a.epsilontonos = 941; a.equal = 61; a.equalmonospace = 65309; a.equalsmall = 65126; a.equalsuperior = 8316; a.equivalence = 8801; a.erbopomofo = 12582; a.ercyrillic = 1088; a.ereversed = 600; a.ereversedcyrillic = 1101; a.escyrillic = 1089; a.esdescendercyrillic = 1195; a.esh = 643; a.eshcurl = 646; a.eshortdeva = 2318; a.eshortvowelsigndeva = 2374; a.eshreversedloop = 426; a.eshsquatreversed = 645; a.esmallhiragana = 12359; a.esmallkatakana = 12455; a.esmallkatakanahalfwidth = 65386; a.estimated = 8494; a.esuperior = 63212; a.eta = 951; a.etarmenian = 1384; a.etatonos = 942; a.eth = 240; a.etilde = 7869; a.etildebelow = 7707; a.etnahtafoukhhebrew = 1425; a.etnahtafoukhlefthebrew = 1425; a.etnahtahebrew = 1425; a.etnahtalefthebrew = 1425; a.eturned = 477; a.eukorean = 12641; a.euro = 8364; a.evowelsignbengali = 2503; a.evowelsigndeva = 2375; a.evowelsigngujarati = 2759; a.exclam = 33; a.exclamarmenian = 1372; a.exclamdbl = 8252; a.exclamdown = 161; a.exclamdownsmall = 63393; a.exclammonospace = 65281; a.exclamsmall = 63265; a.existential = 8707; a.ezh = 658; a.ezhcaron = 495; a.ezhcurl = 659; a.ezhreversed = 441; a.ezhtail = 442; a.f = 102; a.fadeva = 2398; a.fagurmukhi = 2654; a.fahrenheit = 8457; a.fathaarabic = 1614; a.fathalowarabic = 1614; a.fathatanarabic = 1611; a.fbopomofo = 12552; a.fcircle = 9429; a.fdotaccent = 7711; a.feharabic = 1601; a.feharmenian = 1414; a.fehfinalarabic = 65234; a.fehinitialarabic = 65235; a.fehmedialarabic = 65236; a.feicoptic = 997; a.female = 9792; a.ff = 64256; a.ffi = 64259; a.ffl = 64260; a.fi = 64257; a.fifteencircle = 9326; a.fifteenparen = 9346; a.fifteenperiod = 9366; a.figuredash = 8210; a.filledbox = 9632; a.filledrect = 9644; a.finalkaf = 1498; a.finalkafdagesh = 64314; a.finalkafdageshhebrew = 64314; a.finalkafhebrew = 1498; a.finalmem = 1501; a.finalmemhebrew = 1501; a.finalnun = 1503; a.finalnunhebrew = 1503; a.finalpe = 1507; a.finalpehebrew = 1507; a.finaltsadi = 1509; a.finaltsadihebrew = 1509; a.firsttonechinese = 713; a.fisheye = 9673; a.fitacyrillic = 1139; a.five = 53; a.fivearabic = 1637; a.fivebengali = 2539; a.fivecircle = 9316; a.fivecircleinversesansserif = 10126; a.fivedeva = 2411; a.fiveeighths = 8541; a.fivegujarati = 2795; a.fivegurmukhi = 2667; a.fivehackarabic = 1637; a.fivehangzhou = 12325; a.fiveideographicparen = 12836; a.fiveinferior = 8325; a.fivemonospace = 65301; a.fiveoldstyle = 63285; a.fiveparen = 9336; a.fiveperiod = 9356; a.fivepersian = 1781; a.fiveroman = 8564; a.fivesuperior = 8309; a.fivethai = 3669; a.fl = 64258; a.florin = 402; a.fmonospace = 65350; a.fmsquare = 13209; a.fofanthai = 3615; a.fofathai = 3613; a.fongmanthai = 3663; a.forall = 8704; a.four = 52; a.fourarabic = 1636; a.fourbengali = 2538; a.fourcircle = 9315; a.fourcircleinversesansserif = 10125; a.fourdeva = 2410; a.fourgujarati = 2794; a.fourgurmukhi = 2666; a.fourhackarabic = 1636; a.fourhangzhou = 12324; a.fourideographicparen = 12835; a.fourinferior = 8324; a.fourmonospace = 65300; a.fournumeratorbengali = 2551; a.fouroldstyle = 63284; a.fourparen = 9335; a.fourperiod = 9355; a.fourpersian = 1780; a.fourroman = 8563; a.foursuperior = 8308; a.fourteencircle = 9325; a.fourteenparen = 9345; a.fourteenperiod = 9365; a.fourthai = 3668; a.fourthtonechinese = 715; a.fparen = 9377; a.fraction = 8260; a.franc = 8355; a.g = 103; a.gabengali = 2455; a.gacute = 501; a.gadeva = 2327; a.gafarabic = 1711; a.gaffinalarabic = 64403; a.gafinitialarabic = 64404; a.gafmedialarabic = 64405; a.gagujarati = 2711; a.gagurmukhi = 2583; a.gahiragana = 12364; a.gakatakana = 12460; a.gamma = 947; a.gammalatinsmall = 611; a.gammasuperior = 736; a.gangiacoptic = 1003; a.gbopomofo = 12557; a.gbreve = 287; a.gcaron = 487; a.gcedilla = 291; a.gcircle = 9430; a.gcircumflex = 285; a.gcommaaccent = 291; a.gdot = 289; a.gdotaccent = 289; a.gecyrillic = 1075; a.gehiragana = 12370; a.gekatakana = 12466; a.geometricallyequal = 8785; a.gereshaccenthebrew = 1436; a.gereshhebrew = 1523; a.gereshmuqdamhebrew = 1437; a.germandbls = 223; a.gershayimaccenthebrew = 1438; a.gershayimhebrew = 1524; a.getamark = 12307; a.ghabengali = 2456; a.ghadarmenian = 1394; a.ghadeva = 2328; a.ghagujarati = 2712; a.ghagurmukhi = 2584; a.ghainarabic = 1594; a.ghainfinalarabic = 65230; a.ghaininitialarabic = 65231; a.ghainmedialarabic = 65232; a.ghemiddlehookcyrillic = 1173; a.ghestrokecyrillic = 1171; a.gheupturncyrillic = 1169; a.ghhadeva = 2394; a.ghhagurmukhi = 2650; a.ghook = 608; a.ghzsquare = 13203; a.gihiragana = 12366; a.gikatakana = 12462; a.gimarmenian = 1379; a.gimel = 1490; a.gimeldagesh = 64306; a.gimeldageshhebrew = 64306; a.gimelhebrew = 1490; a.gjecyrillic = 1107; a.glottalinvertedstroke = 446; a.glottalstop = 660; a.glottalstopinverted = 662; a.glottalstopmod = 704; a.glottalstopreversed = 661; a.glottalstopreversedmod = 705; a.glottalstopreversedsuperior = 740; a.glottalstopstroke = 673; a.glottalstopstrokereversed = 674; a.gmacron = 7713; a.gmonospace = 65351; a.gohiragana = 12372; a.gokatakana = 12468; a.gparen = 9378; a.gpasquare = 13228; a.gradient = 8711; a.grave = 96; a.gravebelowcmb = 790; a.gravecmb = 768; a.gravecomb = 768; a.gravedeva = 2387; a.gravelowmod = 718; a.gravemonospace = 65344; a.gravetonecmb = 832; a.greater = 62; a.greaterequal = 8805; a.greaterequalorless = 8923; a.greatermonospace = 65310; a.greaterorequivalent = 8819; a.greaterorless = 8823; a.greateroverequal = 8807; a.greatersmall = 65125; a.gscript = 609; a.gstroke = 485; a.guhiragana = 12368; a.guillemotleft = 171; a.guillemotright = 187; a.guilsinglleft = 8249; a.guilsinglright = 8250; a.gukatakana = 12464; a.guramusquare = 13080; a.gysquare = 13257; a.h = 104; a.haabkhasiancyrillic = 1193; a.haaltonearabic = 1729; a.habengali = 2489; a.hadescendercyrillic = 1203; a.hadeva = 2361; a.hagujarati = 2745; a.hagurmukhi = 2617; a.haharabic = 1581; a.hahfinalarabic = 65186; a.hahinitialarabic = 65187; a.hahiragana = 12399; a.hahmedialarabic = 65188; a.haitusquare = 13098; a.hakatakana = 12495; a.hakatakanahalfwidth = 65418; a.halantgurmukhi = 2637; a.hamzaarabic = 1569; a.hamzalowarabic = 1569; a.hangulfiller = 12644; a.hardsigncyrillic = 1098; a.harpoonleftbarbup = 8636; a.harpoonrightbarbup = 8640; a.hasquare = 13258; a.hatafpatah = 1458; a.hatafpatah16 = 1458; a.hatafpatah23 = 1458; a.hatafpatah2f = 1458; a.hatafpatahhebrew = 1458; a.hatafpatahnarrowhebrew = 1458; a.hatafpatahquarterhebrew = 1458; a.hatafpatahwidehebrew = 1458; a.hatafqamats = 1459; a.hatafqamats1b = 1459; a.hatafqamats28 = 1459; a.hatafqamats34 = 1459; a.hatafqamatshebrew = 1459; a.hatafqamatsnarrowhebrew = 1459; a.hatafqamatsquarterhebrew = 1459; a.hatafqamatswidehebrew = 1459; a.hatafsegol = 1457; a.hatafsegol17 = 1457; a.hatafsegol24 = 1457; a.hatafsegol30 = 1457; a.hatafsegolhebrew = 1457; a.hatafsegolnarrowhebrew = 1457; a.hatafsegolquarterhebrew = 1457; a.hatafsegolwidehebrew = 1457; a.hbar = 295; a.hbopomofo = 12559; a.hbrevebelow = 7723; a.hcedilla = 7721; a.hcircle = 9431; a.hcircumflex = 293; a.hdieresis = 7719; a.hdotaccent = 7715; a.hdotbelow = 7717; a.he = 1492; a.heart = 9829; a.heartsuitblack = 9829; a.heartsuitwhite = 9825; a.hedagesh = 64308; a.hedageshhebrew = 64308; a.hehaltonearabic = 1729; a.heharabic = 1607; a.hehebrew = 1492; a.hehfinalaltonearabic = 64423; a.hehfinalalttwoarabic = 65258; a.hehfinalarabic = 65258; a.hehhamzaabovefinalarabic = 64421; a.hehhamzaaboveisolatedarabic = 64420; a.hehinitialaltonearabic = 64424; a.hehinitialarabic = 65259; a.hehiragana = 12408; a.hehmedialaltonearabic = 64425; a.hehmedialarabic = 65260; a.heiseierasquare = 13179; a.hekatakana = 12504; a.hekatakanahalfwidth = 65421; a.hekutaarusquare = 13110; a.henghook = 615; a.herutusquare = 13113; a.het = 1495; a.hethebrew = 1495; a.hhook = 614; a.hhooksuperior = 689; a.hieuhacirclekorean = 12923; a.hieuhaparenkorean = 12827; a.hieuhcirclekorean = 12909; a.hieuhkorean = 12622; a.hieuhparenkorean = 12813; a.hihiragana = 12402; a.hikatakana = 12498; a.hikatakanahalfwidth = 65419; a.hiriq = 1460; a.hiriq14 = 1460; a.hiriq21 = 1460; a.hiriq2d = 1460; a.hiriqhebrew = 1460; a.hiriqnarrowhebrew = 1460; a.hiriqquarterhebrew = 1460; a.hiriqwidehebrew = 1460; a.hlinebelow = 7830; a.hmonospace = 65352; a.hoarmenian = 1392; a.hohipthai = 3627; a.hohiragana = 12411; a.hokatakana = 12507; a.hokatakanahalfwidth = 65422; a.holam = 1465; a.holam19 = 1465; a.holam26 = 1465; a.holam32 = 1465; a.holamhebrew = 1465; a.holamnarrowhebrew = 1465; a.holamquarterhebrew = 1465; a.holamwidehebrew = 1465; a.honokhukthai = 3630; a.hookabovecomb = 777; a.hookcmb = 777; a.hookpalatalizedbelowcmb = 801; a.hookretroflexbelowcmb = 802; a.hoonsquare = 13122; a.horicoptic = 1001; a.horizontalbar = 8213; a.horncmb = 795; a.hotsprings = 9832; a.house = 8962; a.hparen = 9379; a.hsuperior = 688; a.hturned = 613; a.huhiragana = 12405; a.huiitosquare = 13107; a.hukatakana = 12501; a.hukatakanahalfwidth = 65420; a.hungarumlaut = 733; a.hungarumlautcmb = 779; a.hv = 405; a.hyphen = 45; a.hypheninferior = 63205; a.hyphenmonospace = 65293; a.hyphensmall = 65123; a.hyphensuperior = 63206; a.hyphentwo = 8208; a.i = 105; a.iacute = 237; a.iacyrillic = 1103; a.ibengali = 2439; a.ibopomofo = 12583; a.ibreve = 301; a.icaron = 464; a.icircle = 9432; a.icircumflex = 238; a.icyrillic = 1110; a.idblgrave = 521; a.ideographearthcircle = 12943; a.ideographfirecircle = 12939; a.ideographicallianceparen = 12863; a.ideographiccallparen = 12858; a.ideographiccentrecircle = 12965; a.ideographicclose = 12294; a.ideographiccomma = 12289; a.ideographiccommaleft = 65380; a.ideographiccongratulationparen = 12855; a.ideographiccorrectcircle = 12963; a.ideographicearthparen = 12847; a.ideographicenterpriseparen = 12861; a.ideographicexcellentcircle = 12957; a.ideographicfestivalparen = 12864; a.ideographicfinancialcircle = 12950; a.ideographicfinancialparen = 12854; a.ideographicfireparen = 12843; a.ideographichaveparen = 12850; a.ideographichighcircle = 12964; a.ideographiciterationmark = 12293; a.ideographiclaborcircle = 12952; a.ideographiclaborparen = 12856; a.ideographicleftcircle = 12967; a.ideographiclowcircle = 12966; a.ideographicmedicinecircle = 12969; a.ideographicmetalparen = 12846; a.ideographicmoonparen = 12842; a.ideographicnameparen = 12852; a.ideographicperiod = 12290; a.ideographicprintcircle = 12958; a.ideographicreachparen = 12867; a.ideographicrepresentparen = 12857; a.ideographicresourceparen = 12862; a.ideographicrightcircle = 12968; a.ideographicsecretcircle = 12953; a.ideographicselfparen = 12866; a.ideographicsocietyparen = 12851; a.ideographicspace = 12288; a.ideographicspecialparen = 12853; a.ideographicstockparen = 12849; a.ideographicstudyparen = 12859; a.ideographicsunparen = 12848; a.ideographicsuperviseparen = 12860; a.ideographicwaterparen = 12844; a.ideographicwoodparen = 12845; a.ideographiczero = 12295; a.ideographmetalcircle = 12942; a.ideographmooncircle = 12938; a.ideographnamecircle = 12948; a.ideographsuncircle = 12944; a.ideographwatercircle = 12940; a.ideographwoodcircle = 12941; a.ideva = 2311; a.idieresis = 239; a.idieresisacute = 7727; a.idieresiscyrillic = 1253; a.idotbelow = 7883; a.iebrevecyrillic = 1239; a.iecyrillic = 1077; a.ieungacirclekorean = 12917; a.ieungaparenkorean = 12821; a.ieungcirclekorean = 12903; a.ieungkorean = 12615; a.ieungparenkorean = 12807; a.igrave = 236; a.igujarati = 2695; a.igurmukhi = 2567; a.ihiragana = 12356; a.ihookabove = 7881; a.iibengali = 2440; a.iicyrillic = 1080; a.iideva = 2312; a.iigujarati = 2696; a.iigurmukhi = 2568; a.iimatragurmukhi = 2624; a.iinvertedbreve = 523; a.iishortcyrillic = 1081; a.iivowelsignbengali = 2496; a.iivowelsigndeva = 2368; a.iivowelsigngujarati = 2752; a.ij = 307; a.ikatakana = 12452; a.ikatakanahalfwidth = 65394; a.ikorean = 12643; a.ilde = 732; a.iluyhebrew = 1452; a.imacron = 299; a.imacroncyrillic = 1251; a.imageorapproximatelyequal = 8787; a.imatragurmukhi = 2623; a.imonospace = 65353; a.increment = 8710; a.infinity = 8734; a.iniarmenian = 1387; a.integral = 8747; a.integralbottom = 8993; a.integralbt = 8993; a.integralex = 63733; a.integraltop = 8992; a.integraltp = 8992; a.intersection = 8745; a.intisquare = 13061; a.invbullet = 9688; a.invcircle = 9689; a.invsmileface = 9787; a.iocyrillic = 1105; a.iogonek = 303; a.iota = 953; a.iotadieresis = 970; a.iotadieresistonos = 912; a.iotalatin = 617; a.iotatonos = 943; a.iparen = 9380; a.irigurmukhi = 2674; a.ismallhiragana = 12355; a.ismallkatakana = 12451; a.ismallkatakanahalfwidth = 65384; a.issharbengali = 2554; a.istroke = 616; a.isuperior = 63213; a.iterationhiragana = 12445; a.iterationkatakana = 12541; a.itilde = 297; a.itildebelow = 7725; a.iubopomofo = 12585; a.iucyrillic = 1102; a.ivowelsignbengali = 2495; a.ivowelsigndeva = 2367; a.ivowelsigngujarati = 2751; a.izhitsacyrillic = 1141; a.izhitsadblgravecyrillic = 1143; a.j = 106; a.jaarmenian = 1393; a.jabengali = 2460; a.jadeva = 2332; a.jagujarati = 2716; a.jagurmukhi = 2588; a.jbopomofo = 12560; a.jcaron = 496; a.jcircle = 9433; a.jcircumflex = 309; a.jcrossedtail = 669; a.jdotlessstroke = 607; a.jecyrillic = 1112; a.jeemarabic = 1580; a.jeemfinalarabic = 65182; a.jeeminitialarabic = 65183; a.jeemmedialarabic = 65184; a.jeharabic = 1688; a.jehfinalarabic = 64395; a.jhabengali = 2461; a.jhadeva = 2333; a.jhagujarati = 2717; a.jhagurmukhi = 2589; a.jheharmenian = 1403; a.jis = 12292; a.jmonospace = 65354; a.jparen = 9381; a.jsuperior = 690; a.k = 107; a.kabashkircyrillic = 1185; a.kabengali = 2453; a.kacute = 7729; a.kacyrillic = 1082; a.kadescendercyrillic = 1179; a.kadeva = 2325; a.kaf = 1499; a.kafarabic = 1603; a.kafdagesh = 64315; a.kafdageshhebrew = 64315; a.kaffinalarabic = 65242; a.kafhebrew = 1499; a.kafinitialarabic = 65243; a.kafmedialarabic = 65244; a.kafrafehebrew = 64333; a.kagujarati = 2709; a.kagurmukhi = 2581; a.kahiragana = 12363; a.kahookcyrillic = 1220; a.kakatakana = 12459; a.kakatakanahalfwidth = 65398; a.kappa = 954; a.kappasymbolgreek = 1008; a.kapyeounmieumkorean = 12657; a.kapyeounphieuphkorean = 12676; a.kapyeounpieupkorean = 12664; a.kapyeounssangpieupkorean = 12665; a.karoriisquare = 13069; a.kashidaautoarabic = 1600; a.kashidaautonosidebearingarabic = 1600; a.kasmallkatakana = 12533; a.kasquare = 13188; a.kasraarabic = 1616; a.kasratanarabic = 1613; a.kastrokecyrillic = 1183; a.katahiraprolongmarkhalfwidth = 65392; a.kaverticalstrokecyrillic = 1181; a.kbopomofo = 12558; a.kcalsquare = 13193; a.kcaron = 489; a.kcedilla = 311; a.kcircle = 9434; a.kcommaaccent = 311; a.kdotbelow = 7731; a.keharmenian = 1412; a.kehiragana = 12369; a.kekatakana = 12465; a.kekatakanahalfwidth = 65401; a.kenarmenian = 1391; a.kesmallkatakana = 12534; a.kgreenlandic = 312; a.khabengali = 2454; a.khacyrillic = 1093; a.khadeva = 2326; a.khagujarati = 2710; a.khagurmukhi = 2582; a.khaharabic = 1582; a.khahfinalarabic = 65190; a.khahinitialarabic = 65191; a.khahmedialarabic = 65192; a.kheicoptic = 999; a.khhadeva = 2393; a.khhagurmukhi = 2649; a.khieukhacirclekorean = 12920; a.khieukhaparenkorean = 12824; a.khieukhcirclekorean = 12906; a.khieukhkorean = 12619; a.khieukhparenkorean = 12810; a.khokhaithai = 3586; a.khokhonthai = 3589; a.khokhuatthai = 3587; a.khokhwaithai = 3588; a.khomutthai = 3675; a.khook = 409; a.khorakhangthai = 3590; a.khzsquare = 13201; a.kihiragana = 12365; a.kikatakana = 12461; a.kikatakanahalfwidth = 65399; a.kiroguramusquare = 13077; a.kiromeetorusquare = 13078; a.kirosquare = 13076; a.kiyeokacirclekorean = 12910; a.kiyeokaparenkorean = 12814; a.kiyeokcirclekorean = 12896; a.kiyeokkorean = 12593; a.kiyeokparenkorean = 12800; a.kiyeoksioskorean = 12595; a.kjecyrillic = 1116; a.klinebelow = 7733; a.klsquare = 13208; a.kmcubedsquare = 13222; a.kmonospace = 65355; a.kmsquaredsquare = 13218; a.kohiragana = 12371; a.kohmsquare = 13248; a.kokaithai = 3585; a.kokatakana = 12467; a.kokatakanahalfwidth = 65402; a.kooposquare = 13086; a.koppacyrillic = 1153; a.koreanstandardsymbol = 12927; a.koroniscmb = 835; a.kparen = 9382; a.kpasquare = 13226; a.ksicyrillic = 1135; a.ktsquare = 13263; a.kturned = 670; a.kuhiragana = 12367; a.kukatakana = 12463; a.kukatakanahalfwidth = 65400; a.kvsquare = 13240; a.kwsquare = 13246; a.l = 108; a.labengali = 2482; a.lacute = 314; a.ladeva = 2354; a.lagujarati = 2738; a.lagurmukhi = 2610; a.lakkhangyaothai = 3653; a.lamaleffinalarabic = 65276; a.lamalefhamzaabovefinalarabic = 65272; a.lamalefhamzaaboveisolatedarabic = 65271; a.lamalefhamzabelowfinalarabic = 65274; a.lamalefhamzabelowisolatedarabic = 65273; a.lamalefisolatedarabic = 65275; a.lamalefmaddaabovefinalarabic = 65270; a.lamalefmaddaaboveisolatedarabic = 65269; a.lamarabic = 1604; a.lambda = 955; a.lambdastroke = 411; a.lamed = 1500; a.lameddagesh = 64316; a.lameddageshhebrew = 64316; a.lamedhebrew = 1500; a.lamfinalarabic = 65246; a.lamhahinitialarabic = 64714; a.laminitialarabic = 65247; a.lamjeeminitialarabic = 64713; a.lamkhahinitialarabic = 64715; a.lamlamhehisolatedarabic = 65010; a.lammedialarabic = 65248; a.lammeemhahinitialarabic = 64904; a.lammeeminitialarabic = 64716; a.largecircle = 9711; a.lbar = 410; a.lbelt = 620; a.lbopomofo = 12556; a.lcaron = 318; a.lcedilla = 316; a.lcircle = 9435; a.lcircumflexbelow = 7741; a.lcommaaccent = 316; a.ldot = 320; a.ldotaccent = 320; a.ldotbelow = 7735; a.ldotbelowmacron = 7737; a.leftangleabovecmb = 794; a.lefttackbelowcmb = 792; a.less = 60; a.lessequal = 8804; a.lessequalorgreater = 8922; a.lessmonospace = 65308; a.lessorequivalent = 8818; a.lessorgreater = 8822; a.lessoverequal = 8806; a.lesssmall = 65124; a.lezh = 622; a.lfblock = 9612; a.lhookretroflex = 621; a.lira = 8356; a.liwnarmenian = 1388; a.lj = 457; a.ljecyrillic = 1113; a.ll = 63168; a.lladeva = 2355; a.llagujarati = 2739; a.llinebelow = 7739; a.llladeva = 2356; a.llvocalicbengali = 2529; a.llvocalicdeva = 2401; a.llvocalicvowelsignbengali = 2531; a.llvocalicvowelsigndeva = 2403; a.lmiddletilde = 619; a.lmonospace = 65356; a.lmsquare = 13264; a.lochulathai = 3628; a.logicaland = 8743; a.logicalnot = 172; a.logicalnotreversed = 8976; a.logicalor = 8744; a.lolingthai = 3621; a.longs = 383; a.lowlinecenterline = 65102; a.lowlinecmb = 818; a.lowlinedashed = 65101; a.lozenge = 9674; a.lparen = 9383; a.lslash = 322; a.lsquare = 8467; a.lsuperior = 63214; a.ltshade = 9617; a.luthai = 3622; a.lvocalicbengali = 2444; a.lvocalicdeva = 2316; a.lvocalicvowelsignbengali = 2530; a.lvocalicvowelsigndeva = 2402; a.lxsquare = 13267; a.m = 109; a.mabengali = 2478; a.macron = 175; a.macronbelowcmb = 817; a.macroncmb = 772; a.macronlowmod = 717; a.macronmonospace = 65507; a.macute = 7743; a.madeva = 2350; a.magujarati = 2734; a.magurmukhi = 2606; a.mahapakhhebrew = 1444; a.mahapakhlefthebrew = 1444; a.mahiragana = 12414; a.maichattawalowleftthai = 63637; a.maichattawalowrightthai = 63636; a.maichattawathai = 3659; a.maichattawaupperleftthai = 63635; a.maieklowleftthai = 63628; a.maieklowrightthai = 63627; a.maiekthai = 3656; a.maiekupperleftthai = 63626; a.maihanakatleftthai = 63620; a.maihanakatthai = 3633; a.maitaikhuleftthai = 63625; a.maitaikhuthai = 3655; a.maitholowleftthai = 63631; a.maitholowrightthai = 63630; a.maithothai = 3657; a.maithoupperleftthai = 63629; a.maitrilowleftthai = 63634; a.maitrilowrightthai = 63633; a.maitrithai = 3658; a.maitriupperleftthai = 63632; a.maiyamokthai = 3654; a.makatakana = 12510; a.makatakanahalfwidth = 65423; a.male = 9794; a.mansyonsquare = 13127; a.maqafhebrew = 1470; a.mars = 9794; a.masoracirclehebrew = 1455; a.masquare = 13187; a.mbopomofo = 12551; a.mbsquare = 13268; a.mcircle = 9436; a.mcubedsquare = 13221; a.mdotaccent = 7745; a.mdotbelow = 7747; a.meemarabic = 1605; a.meemfinalarabic = 65250; a.meeminitialarabic = 65251; a.meemmedialarabic = 65252; a.meemmeeminitialarabic = 64721; a.meemmeemisolatedarabic = 64584; a.meetorusquare = 13133; a.mehiragana = 12417; a.meizierasquare = 13182; a.mekatakana = 12513; a.mekatakanahalfwidth = 65426; a.mem = 1502; a.memdagesh = 64318; a.memdageshhebrew = 64318; a.memhebrew = 1502; a.menarmenian = 1396; a.merkhahebrew = 1445; a.merkhakefulahebrew = 1446; a.merkhakefulalefthebrew = 1446; a.merkhalefthebrew = 1445; a.mhook = 625; a.mhzsquare = 13202; a.middledotkatakanahalfwidth = 65381; a.middot = 183; a.mieumacirclekorean = 12914; a.mieumaparenkorean = 12818; a.mieumcirclekorean = 12900; a.mieumkorean = 12609; a.mieumpansioskorean = 12656; a.mieumparenkorean = 12804; a.mieumpieupkorean = 12654; a.mieumsioskorean = 12655; a.mihiragana = 12415; a.mikatakana = 12511; a.mikatakanahalfwidth = 65424; a.minus = 8722; a.minusbelowcmb = 800; a.minuscircle = 8854; a.minusmod = 727; a.minusplus = 8723; a.minute = 8242; a.miribaarusquare = 13130; a.mirisquare = 13129; a.mlonglegturned = 624; a.mlsquare = 13206; a.mmcubedsquare = 13219; a.mmonospace = 65357; a.mmsquaredsquare = 13215; a.mohiragana = 12418; a.mohmsquare = 13249; a.mokatakana = 12514; a.mokatakanahalfwidth = 65427; a.molsquare = 13270; a.momathai = 3617; a.moverssquare = 13223; a.moverssquaredsquare = 13224; a.mparen = 9384; a.mpasquare = 13227; a.mssquare = 13235; a.msuperior = 63215; a.mturned = 623; a.mu = 181; a.mu1 = 181; a.muasquare = 13186; a.muchgreater = 8811; a.muchless = 8810; a.mufsquare = 13196; a.mugreek = 956; a.mugsquare = 13197; a.muhiragana = 12416; a.mukatakana = 12512; a.mukatakanahalfwidth = 65425; a.mulsquare = 13205; a.multiply = 215; a.mumsquare = 13211; a.munahhebrew = 1443; a.munahlefthebrew = 1443; a.musicalnote = 9834; a.musicalnotedbl = 9835; a.musicflatsign = 9837; a.musicsharpsign = 9839; a.mussquare = 13234; a.muvsquare = 13238; a.muwsquare = 13244; a.mvmegasquare = 13241; a.mvsquare = 13239; a.mwmegasquare = 13247; a.mwsquare = 13245; a.n = 110; a.nabengali = 2472; a.nabla = 8711; a.nacute = 324; a.nadeva = 2344; a.nagujarati = 2728; a.nagurmukhi = 2600; a.nahiragana = 12394; a.nakatakana = 12490; a.nakatakanahalfwidth = 65413; a.napostrophe = 329; a.nasquare = 13185; a.nbopomofo = 12555; a.nbspace = 160; a.ncaron = 328; a.ncedilla = 326; a.ncircle = 9437; a.ncircumflexbelow = 7755; a.ncommaaccent = 326; a.ndotaccent = 7749; a.ndotbelow = 7751; a.nehiragana = 12397; a.nekatakana = 12493; a.nekatakanahalfwidth = 65416; a.newsheqelsign = 8362; a.nfsquare = 13195; a.ngabengali = 2457; a.ngadeva = 2329; a.ngagujarati = 2713; a.ngagurmukhi = 2585; a.ngonguthai = 3591; a.nhiragana = 12435; a.nhookleft = 626; a.nhookretroflex = 627; a.nieunacirclekorean = 12911; a.nieunaparenkorean = 12815; a.nieuncieuckorean = 12597; a.nieuncirclekorean = 12897; a.nieunhieuhkorean = 12598; a.nieunkorean = 12596; a.nieunpansioskorean = 12648; a.nieunparenkorean = 12801; a.nieunsioskorean = 12647; a.nieuntikeutkorean = 12646; a.nihiragana = 12395; a.nikatakana = 12491; a.nikatakanahalfwidth = 65414; a.nikhahitleftthai = 63641; a.nikhahitthai = 3661; a.nine = 57; a.ninearabic = 1641; a.ninebengali = 2543; a.ninecircle = 9320; a.ninecircleinversesansserif = 10130; a.ninedeva = 2415; a.ninegujarati = 2799; a.ninegurmukhi = 2671; a.ninehackarabic = 1641; a.ninehangzhou = 12329; a.nineideographicparen = 12840; a.nineinferior = 8329; a.ninemonospace = 65305; a.nineoldstyle = 63289; a.nineparen = 9340; a.nineperiod = 9360; a.ninepersian = 1785; a.nineroman = 8568; a.ninesuperior = 8313; a.nineteencircle = 9330; a.nineteenparen = 9350; a.nineteenperiod = 9370; a.ninethai = 3673; a.nj = 460; a.njecyrillic = 1114; a.nkatakana = 12531; a.nkatakanahalfwidth = 65437; a.nlegrightlong = 414; a.nlinebelow = 7753; a.nmonospace = 65358; a.nmsquare = 13210; a.nnabengali = 2467; a.nnadeva = 2339; a.nnagujarati = 2723; a.nnagurmukhi = 2595; a.nnnadeva = 2345; a.nohiragana = 12398; a.nokatakana = 12494; a.nokatakanahalfwidth = 65417; a.nonbreakingspace = 160; a.nonenthai = 3603; a.nonuthai = 3609; a.noonarabic = 1606; a.noonfinalarabic = 65254; a.noonghunnaarabic = 1722; a.noonghunnafinalarabic = 64415; a.nooninitialarabic = 65255; a.noonjeeminitialarabic = 64722; a.noonjeemisolatedarabic = 64587; a.noonmedialarabic = 65256; a.noonmeeminitialarabic = 64725; a.noonmeemisolatedarabic = 64590; a.noonnoonfinalarabic = 64653; a.notcontains = 8716; a.notelement = 8713; a.notelementof = 8713; a.notequal = 8800; a.notgreater = 8815; a.notgreaternorequal = 8817; a.notgreaternorless = 8825; a.notidentical = 8802; a.notless = 8814; a.notlessnorequal = 8816; a.notparallel = 8742; a.notprecedes = 8832; a.notsubset = 8836; a.notsucceeds = 8833; a.notsuperset = 8837; a.nowarmenian = 1398; a.nparen = 9385; a.nssquare = 13233; a.nsuperior = 8319; a.ntilde = 241; a.nu = 957; a.nuhiragana = 12396; a.nukatakana = 12492; a.nukatakanahalfwidth = 65415; a.nuktabengali = 2492; a.nuktadeva = 2364; a.nuktagujarati = 2748; a.nuktagurmukhi = 2620; a.numbersign = 35; a.numbersignmonospace = 65283; a.numbersignsmall = 65119; a.numeralsigngreek = 884; a.numeralsignlowergreek = 885; a.numero = 8470; a.nun = 1504; a.nundagesh = 64320; a.nundageshhebrew = 64320; a.nunhebrew = 1504; a.nvsquare = 13237; a.nwsquare = 13243; a.nyabengali = 2462; a.nyadeva = 2334; a.nyagujarati = 2718; a.nyagurmukhi = 2590; a.o = 111; a.oacute = 243; a.oangthai = 3629; a.obarred = 629; a.obarredcyrillic = 1257; a.obarreddieresiscyrillic = 1259; a.obengali = 2451; a.obopomofo = 12571; a.obreve = 335; a.ocandradeva = 2321; a.ocandragujarati = 2705; a.ocandravowelsigndeva = 2377; a.ocandravowelsigngujarati = 2761; a.ocaron = 466; a.ocircle = 9438; a.ocircumflex = 244; a.ocircumflexacute = 7889; a.ocircumflexdotbelow = 7897; a.ocircumflexgrave = 7891; a.ocircumflexhookabove = 7893; a.ocircumflextilde = 7895; a.ocyrillic = 1086; a.odblacute = 337; a.odblgrave = 525; a.odeva = 2323; a.odieresis = 246; a.odieresiscyrillic = 1255; a.odotbelow = 7885; a.oe = 339; a.oekorean = 12634; a.ogonek = 731; a.ogonekcmb = 808; a.ograve = 242; a.ogujarati = 2707; a.oharmenian = 1413; a.ohiragana = 12362; a.ohookabove = 7887; a.ohorn = 417; a.ohornacute = 7899; a.ohorndotbelow = 7907; a.ohorngrave = 7901; a.ohornhookabove = 7903; a.ohorntilde = 7905; a.ohungarumlaut = 337; a.oi = 419; a.oinvertedbreve = 527; a.okatakana = 12458; a.okatakanahalfwidth = 65397; a.okorean = 12631; a.olehebrew = 1451; a.omacron = 333; a.omacronacute = 7763; a.omacrongrave = 7761; a.omdeva = 2384; a.omega = 969; a.omega1 = 982; a.omegacyrillic = 1121; a.omegalatinclosed = 631; a.omegaroundcyrillic = 1147; a.omegatitlocyrillic = 1149; a.omegatonos = 974; a.omgujarati = 2768; a.omicron = 959; a.omicrontonos = 972; a.omonospace = 65359; a.one = 49; a.onearabic = 1633; a.onebengali = 2535; a.onecircle = 9312; a.onecircleinversesansserif = 10122; a.onedeva = 2407; a.onedotenleader = 8228; a.oneeighth = 8539; a.onefitted = 63196; a.onegujarati = 2791; a.onegurmukhi = 2663; a.onehackarabic = 1633; a.onehalf = 189; a.onehangzhou = 12321; a.oneideographicparen = 12832; a.oneinferior = 8321; a.onemonospace = 65297; a.onenumeratorbengali = 2548; a.oneoldstyle = 63281; a.oneparen = 9332; a.oneperiod = 9352; a.onepersian = 1777; a.onequarter = 188; a.oneroman = 8560; a.onesuperior = 185; a.onethai = 3665; a.onethird = 8531; a.oogonek = 491; a.oogonekmacron = 493; a.oogurmukhi = 2579; a.oomatragurmukhi = 2635; a.oopen = 596; a.oparen = 9386; a.openbullet = 9702; a.option = 8997; a.ordfeminine = 170; a.ordmasculine = 186; a.orthogonal = 8735; a.oshortdeva = 2322; a.oshortvowelsigndeva = 2378; a.oslash = 248; a.oslashacute = 511; a.osmallhiragana = 12361; a.osmallkatakana = 12457; a.osmallkatakanahalfwidth = 65387; a.ostrokeacute = 511; a.osuperior = 63216; a.otcyrillic = 1151; a.otilde = 245; a.otildeacute = 7757; a.otildedieresis = 7759; a.oubopomofo = 12577; a.overline = 8254; a.overlinecenterline = 65098; a.overlinecmb = 773; a.overlinedashed = 65097; a.overlinedblwavy = 65100; a.overlinewavy = 65099; a.overscore = 175; a.ovowelsignbengali = 2507; a.ovowelsigndeva = 2379; a.ovowelsigngujarati = 2763; a.p = 112; a.paampssquare = 13184; a.paasentosquare = 13099; a.pabengali = 2474; a.pacute = 7765; a.padeva = 2346; a.pagedown = 8671; a.pageup = 8670; a.pagujarati = 2730; a.pagurmukhi = 2602; a.pahiragana = 12401; a.paiyannoithai = 3631; a.pakatakana = 12497; a.palatalizationcyrilliccmb = 1156; a.palochkacyrillic = 1216; a.pansioskorean = 12671; a.paragraph = 182; a.parallel = 8741; a.parenleft = 40; a.parenleftaltonearabic = 64830; a.parenleftbt = 63725; a.parenleftex = 63724; a.parenleftinferior = 8333; a.parenleftmonospace = 65288; a.parenleftsmall = 65113; a.parenleftsuperior = 8317; a.parenlefttp = 63723; a.parenleftvertical = 65077; a.parenright = 41; a.parenrightaltonearabic = 64831; a.parenrightbt = 63736; a.parenrightex = 63735; a.parenrightinferior = 8334; a.parenrightmonospace = 65289; a.parenrightsmall = 65114; a.parenrightsuperior = 8318; a.parenrighttp = 63734; a.parenrightvertical = 65078; a.partialdiff = 8706; a.paseqhebrew = 1472; a.pashtahebrew = 1433; a.pasquare = 13225; a.patah = 1463; a.patah11 = 1463; a.patah1d = 1463; a.patah2a = 1463; a.patahhebrew = 1463; a.patahnarrowhebrew = 1463; a.patahquarterhebrew = 1463; a.patahwidehebrew = 1463; a.pazerhebrew = 1441; a.pbopomofo = 12550; a.pcircle = 9439; a.pdotaccent = 7767; a.pe = 1508; a.pecyrillic = 1087; a.pedagesh = 64324; a.pedageshhebrew = 64324; a.peezisquare = 13115; a.pefinaldageshhebrew = 64323; a.peharabic = 1662; a.peharmenian = 1402; a.pehebrew = 1508; a.pehfinalarabic = 64343; a.pehinitialarabic = 64344; a.pehiragana = 12410; a.pehmedialarabic = 64345; a.pekatakana = 12506; a.pemiddlehookcyrillic = 1191; a.perafehebrew = 64334; a.percent = 37; a.percentarabic = 1642; a.percentmonospace = 65285; a.percentsmall = 65130; a.period = 46; a.periodarmenian = 1417; a.periodcentered = 183; a.periodhalfwidth = 65377; a.periodinferior = 63207; a.periodmonospace = 65294; a.periodsmall = 65106; a.periodsuperior = 63208; a.perispomenigreekcmb = 834; a.perpendicular = 8869; a.perthousand = 8240; a.peseta = 8359; a.pfsquare = 13194; a.phabengali = 2475; a.phadeva = 2347; a.phagujarati = 2731; a.phagurmukhi = 2603; a.phi = 966; a.phi1 = 981; a.phieuphacirclekorean = 12922; a.phieuphaparenkorean = 12826; a.phieuphcirclekorean = 12908; a.phieuphkorean = 12621; a.phieuphparenkorean = 12812; a.philatin = 632; a.phinthuthai = 3642; a.phisymbolgreek = 981; a.phook = 421; a.phophanthai = 3614; a.phophungthai = 3612; a.phosamphaothai = 3616; a.pi = 960; a.pieupacirclekorean = 12915; a.pieupaparenkorean = 12819; a.pieupcieuckorean = 12662; a.pieupcirclekorean = 12901; a.pieupkiyeokkorean = 12658; a.pieupkorean = 12610; a.pieupparenkorean = 12805; a.pieupsioskiyeokkorean = 12660; a.pieupsioskorean = 12612; a.pieupsiostikeutkorean = 12661; a.pieupthieuthkorean = 12663; a.pieuptikeutkorean = 12659; a.pihiragana = 12404; a.pikatakana = 12500; a.pisymbolgreek = 982; a.piwrarmenian = 1411; a.plus = 43; a.plusbelowcmb = 799; a.pluscircle = 8853; a.plusminus = 177; a.plusmod = 726; a.plusmonospace = 65291; a.plussmall = 65122; a.plussuperior = 8314; a.pmonospace = 65360; a.pmsquare = 13272; a.pohiragana = 12413; a.pointingindexdownwhite = 9759; a.pointingindexleftwhite = 9756; a.pointingindexrightwhite = 9758; a.pointingindexupwhite = 9757; a.pokatakana = 12509; a.poplathai = 3611; a.postalmark = 12306; a.postalmarkface = 12320; a.pparen = 9387; a.precedes = 8826; a.prescription = 8478; a.primemod = 697; a.primereversed = 8245; a.product = 8719; a.projective = 8965; a.prolongedkana = 12540; a.propellor = 8984; a.propersubset = 8834; a.propersuperset = 8835; a.proportion = 8759; a.proportional = 8733; a.psi = 968; a.psicyrillic = 1137; a.psilipneumatacyrilliccmb = 1158; a.pssquare = 13232; a.puhiragana = 12407; a.pukatakana = 12503; a.pvsquare = 13236; a.pwsquare = 13242; a.q = 113; a.qadeva = 2392; a.qadmahebrew = 1448; a.qafarabic = 1602; a.qaffinalarabic = 65238; a.qafinitialarabic = 65239; a.qafmedialarabic = 65240; a.qamats = 1464; a.qamats10 = 1464; a.qamats1a = 1464; a.qamats1c = 1464; a.qamats27 = 1464; a.qamats29 = 1464; a.qamats33 = 1464; a.qamatsde = 1464; a.qamatshebrew = 1464; a.qamatsnarrowhebrew = 1464; a.qamatsqatanhebrew = 1464; a.qamatsqatannarrowhebrew = 1464; a.qamatsqatanquarterhebrew = 1464; a.qamatsqatanwidehebrew = 1464; a.qamatsquarterhebrew = 1464; a.qamatswidehebrew = 1464; a.qarneyparahebrew = 1439; a.qbopomofo = 12561; a.qcircle = 9440; a.qhook = 672; a.qmonospace = 65361; a.qof = 1511; a.qofdagesh = 64327; a.qofdageshhebrew = 64327; a.qofhebrew = 1511; a.qparen = 9388; a.quarternote = 9833; a.qubuts = 1467; a.qubuts18 = 1467; a.qubuts25 = 1467; a.qubuts31 = 1467; a.qubutshebrew = 1467; a.qubutsnarrowhebrew = 1467; a.qubutsquarterhebrew = 1467; a.qubutswidehebrew = 1467; a.question = 63; a.questionarabic = 1567; a.questionarmenian = 1374; a.questiondown = 191; a.questiondownsmall = 63423; a.questiongreek = 894; a.questionmonospace = 65311; a.questionsmall = 63295; a.quotedbl = 34; a.quotedblbase = 8222; a.quotedblleft = 8220; a.quotedblmonospace = 65282; a.quotedblprime = 12318; a.quotedblprimereversed = 12317; a.quotedblright = 8221; a.quoteleft = 8216; a.quoteleftreversed = 8219; a.quotereversed = 8219; a.quoteright = 8217; a.quoterightn = 329; a.quotesinglbase = 8218; a.quotesingle = 39; a.quotesinglemonospace = 65287; a.r = 114; a.raarmenian = 1404; a.rabengali = 2480; a.racute = 341; a.radeva = 2352; a.radical = 8730; a.radicalex = 63717; a.radoverssquare = 13230; a.radoverssquaredsquare = 13231; a.radsquare = 13229; a.rafe = 1471; a.rafehebrew = 1471; a.ragujarati = 2736; a.ragurmukhi = 2608; a.rahiragana = 12425; a.rakatakana = 12521; a.rakatakanahalfwidth = 65431; a.ralowerdiagonalbengali = 2545; a.ramiddlediagonalbengali = 2544; a.ramshorn = 612; a.ratio = 8758; a.rbopomofo = 12566; a.rcaron = 345; a.rcedilla = 343; a.rcircle = 9441; a.rcommaaccent = 343; a.rdblgrave = 529; a.rdotaccent = 7769; a.rdotbelow = 7771; a.rdotbelowmacron = 7773; a.referencemark = 8251; a.reflexsubset = 8838; a.reflexsuperset = 8839; a.registered = 174; a.registersans = 63720; a.registerserif = 63194; a.reharabic = 1585; a.reharmenian = 1408; a.rehfinalarabic = 65198; a.rehiragana = 12428; a.rekatakana = 12524; a.rekatakanahalfwidth = 65434; a.resh = 1512; a.reshdageshhebrew = 64328; a.reshhebrew = 1512; a.reversedtilde = 8765; a.reviahebrew = 1431; a.reviamugrashhebrew = 1431; a.revlogicalnot = 8976; a.rfishhook = 638; a.rfishhookreversed = 639; a.rhabengali = 2525; a.rhadeva = 2397; a.rho = 961; a.rhook = 637; a.rhookturned = 635; a.rhookturnedsuperior = 693; a.rhosymbolgreek = 1009; a.rhotichookmod = 734; a.rieulacirclekorean = 12913; a.rieulaparenkorean = 12817; a.rieulcirclekorean = 12899; a.rieulhieuhkorean = 12608; a.rieulkiyeokkorean = 12602; a.rieulkiyeoksioskorean = 12649; a.rieulkorean = 12601; a.rieulmieumkorean = 12603; a.rieulpansioskorean = 12652; a.rieulparenkorean = 12803; a.rieulphieuphkorean = 12607; a.rieulpieupkorean = 12604; a.rieulpieupsioskorean = 12651; a.rieulsioskorean = 12605; a.rieulthieuthkorean = 12606; a.rieultikeutkorean = 12650; a.rieulyeorinhieuhkorean = 12653; a.rightangle = 8735; a.righttackbelowcmb = 793; a.righttriangle = 8895; a.rihiragana = 12426; a.rikatakana = 12522; a.rikatakanahalfwidth = 65432; a.ring = 730; a.ringbelowcmb = 805; a.ringcmb = 778; a.ringhalfleft = 703; a.ringhalfleftarmenian = 1369; a.ringhalfleftbelowcmb = 796; a.ringhalfleftcentered = 723; a.ringhalfright = 702; a.ringhalfrightbelowcmb = 825; a.ringhalfrightcentered = 722; a.rinvertedbreve = 531; a.rittorusquare = 13137; a.rlinebelow = 7775; a.rlongleg = 636; a.rlonglegturned = 634; a.rmonospace = 65362; a.rohiragana = 12429; a.rokatakana = 12525; a.rokatakanahalfwidth = 65435; a.roruathai = 3619; a.rparen = 9389; a.rrabengali = 2524; a.rradeva = 2353; a.rragurmukhi = 2652; a.rreharabic = 1681; a.rrehfinalarabic = 64397; a.rrvocalicbengali = 2528; a.rrvocalicdeva = 2400; a.rrvocalicgujarati = 2784; a.rrvocalicvowelsignbengali = 2500; a.rrvocalicvowelsigndeva = 2372; a.rrvocalicvowelsigngujarati = 2756; a.rsuperior = 63217; a.rtblock = 9616; a.rturned = 633; a.rturnedsuperior = 692; a.ruhiragana = 12427; a.rukatakana = 12523; a.rukatakanahalfwidth = 65433; a.rupeemarkbengali = 2546; a.rupeesignbengali = 2547; a.rupiah = 63197; a.ruthai = 3620; a.rvocalicbengali = 2443; a.rvocalicdeva = 2315; a.rvocalicgujarati = 2699; a.rvocalicvowelsignbengali = 2499; a.rvocalicvowelsigndeva = 2371; a.rvocalicvowelsigngujarati = 2755; a.s = 115; a.sabengali = 2488; a.sacute = 347; a.sacutedotaccent = 7781; a.sadarabic = 1589; a.sadeva = 2360; a.sadfinalarabic = 65210; a.sadinitialarabic = 65211; a.sadmedialarabic = 65212; a.sagujarati = 2744; a.sagurmukhi = 2616; a.sahiragana = 12373; a.sakatakana = 12469; a.sakatakanahalfwidth = 65403; a.sallallahoualayhewasallamarabic = 65018; a.samekh = 1505; a.samekhdagesh = 64321; a.samekhdageshhebrew = 64321; a.samekhhebrew = 1505; a.saraaathai = 3634; a.saraaethai = 3649; a.saraaimaimalaithai = 3652; a.saraaimaimuanthai = 3651; a.saraamthai = 3635; a.saraathai = 3632; a.saraethai = 3648; a.saraiileftthai = 63622; a.saraiithai = 3637; a.saraileftthai = 63621; a.saraithai = 3636; a.saraothai = 3650; a.saraueeleftthai = 63624; a.saraueethai = 3639; a.saraueleftthai = 63623; a.sarauethai = 3638; a.sarauthai = 3640; a.sarauuthai = 3641; a.sbopomofo = 12569; a.scaron = 353; a.scarondotaccent = 7783; a.scedilla = 351; a.schwa = 601; a.schwacyrillic = 1241; a.schwadieresiscyrillic = 1243; a.schwahook = 602; a.scircle = 9442; a.scircumflex = 349; a.scommaaccent = 537; a.sdotaccent = 7777; a.sdotbelow = 7779; a.sdotbelowdotaccent = 7785; a.seagullbelowcmb = 828; a.second = 8243; a.secondtonechinese = 714; a.section = 167; a.seenarabic = 1587; a.seenfinalarabic = 65202; a.seeninitialarabic = 65203; a.seenmedialarabic = 65204; a.segol = 1462; a.segol13 = 1462; a.segol1f = 1462; a.segol2c = 1462; a.segolhebrew = 1462; a.segolnarrowhebrew = 1462; a.segolquarterhebrew = 1462; a.segoltahebrew = 1426; a.segolwidehebrew = 1462; a.seharmenian = 1405; a.sehiragana = 12379; a.sekatakana = 12475; a.sekatakanahalfwidth = 65406; a.semicolon = 59; a.semicolonarabic = 1563; a.semicolonmonospace = 65307; a.semicolonsmall = 65108; a.semivoicedmarkkana = 12444; a.semivoicedmarkkanahalfwidth = 65439; a.sentisquare = 13090; a.sentosquare = 13091; a.seven = 55; a.sevenarabic = 1639; a.sevenbengali = 2541; a.sevencircle = 9318; a.sevencircleinversesansserif = 10128; a.sevendeva = 2413; a.seveneighths = 8542; a.sevengujarati = 2797; a.sevengurmukhi = 2669; a.sevenhackarabic = 1639; a.sevenhangzhou = 12327; a.sevenideographicparen = 12838; a.seveninferior = 8327; a.sevenmonospace = 65303; a.sevenoldstyle = 63287; a.sevenparen = 9338; a.sevenperiod = 9358; a.sevenpersian = 1783; a.sevenroman = 8566; a.sevensuperior = 8311; a.seventeencircle = 9328; a.seventeenparen = 9348; a.seventeenperiod = 9368; a.seventhai = 3671; a.sfthyphen = 173; a.shaarmenian = 1399; a.shabengali = 2486; a.shacyrillic = 1096; a.shaddaarabic = 1617; a.shaddadammaarabic = 64609; a.shaddadammatanarabic = 64606; a.shaddafathaarabic = 64608; a.shaddakasraarabic = 64610; a.shaddakasratanarabic = 64607; a.shade = 9618; a.shadedark = 9619; a.shadelight = 9617; a.shademedium = 9618; a.shadeva = 2358; a.shagujarati = 2742; a.shagurmukhi = 2614; a.shalshelethebrew = 1427; a.shbopomofo = 12565; a.shchacyrillic = 1097; a.sheenarabic = 1588; a.sheenfinalarabic = 65206; a.sheeninitialarabic = 65207; a.sheenmedialarabic = 65208; a.sheicoptic = 995; a.sheqel = 8362; a.sheqelhebrew = 8362; a.sheva = 1456; a.sheva115 = 1456; a.sheva15 = 1456; a.sheva22 = 1456; a.sheva2e = 1456; a.shevahebrew = 1456; a.shevanarrowhebrew = 1456; a.shevaquarterhebrew = 1456; a.shevawidehebrew = 1456; a.shhacyrillic = 1211; a.shimacoptic = 1005; a.shin = 1513; a.shindagesh = 64329; a.shindageshhebrew = 64329; a.shindageshshindot = 64300; a.shindageshshindothebrew = 64300; a.shindageshsindot = 64301; a.shindageshsindothebrew = 64301; a.shindothebrew = 1473; a.shinhebrew = 1513; a.shinshindot = 64298; a.shinshindothebrew = 64298; a.shinsindot = 64299; a.shinsindothebrew = 64299; a.shook = 642; a.sigma = 963; a.sigma1 = 962; a.sigmafinal = 962; a.sigmalunatesymbolgreek = 1010; a.sihiragana = 12375; a.sikatakana = 12471; a.sikatakanahalfwidth = 65404; a.siluqhebrew = 1469; a.siluqlefthebrew = 1469; a.similar = 8764; a.sindothebrew = 1474; a.siosacirclekorean = 12916; a.siosaparenkorean = 12820; a.sioscieuckorean = 12670; a.sioscirclekorean = 12902; a.sioskiyeokkorean = 12666; a.sioskorean = 12613; a.siosnieunkorean = 12667; a.siosparenkorean = 12806; a.siospieupkorean = 12669; a.siostikeutkorean = 12668; a.six = 54; a.sixarabic = 1638; a.sixbengali = 2540; a.sixcircle = 9317; a.sixcircleinversesansserif = 10127; a.sixdeva = 2412; a.sixgujarati = 2796; a.sixgurmukhi = 2668; a.sixhackarabic = 1638; a.sixhangzhou = 12326; a.sixideographicparen = 12837; a.sixinferior = 8326; a.sixmonospace = 65302; a.sixoldstyle = 63286; a.sixparen = 9337; a.sixperiod = 9357; a.sixpersian = 1782; a.sixroman = 8565; a.sixsuperior = 8310; a.sixteencircle = 9327; a.sixteencurrencydenominatorbengali = 2553; a.sixteenparen = 9347; a.sixteenperiod = 9367; a.sixthai = 3670; a.slash = 47; a.slashmonospace = 65295; a.slong = 383; a.slongdotaccent = 7835; a.smileface = 9786; a.smonospace = 65363; a.sofpasuqhebrew = 1475; a.softhyphen = 173; a.softsigncyrillic = 1100; a.sohiragana = 12381; a.sokatakana = 12477; a.sokatakanahalfwidth = 65407; a.soliduslongoverlaycmb = 824; a.solidusshortoverlaycmb = 823; a.sorusithai = 3625; a.sosalathai = 3624; a.sosothai = 3595; a.sosuathai = 3626; a.space = 32; a.spacehackarabic = 32; a.spade = 9824; a.spadesuitblack = 9824; a.spadesuitwhite = 9828; a.sparen = 9390; a.squarebelowcmb = 827; a.squarecc = 13252; a.squarecm = 13213; a.squarediagonalcrosshatchfill = 9641; a.squarehorizontalfill = 9636; a.squarekg = 13199; a.squarekm = 13214; a.squarekmcapital = 13262; a.squareln = 13265; a.squarelog = 13266; a.squaremg = 13198; a.squaremil = 13269; a.squaremm = 13212; a.squaremsquared = 13217; a.squareorthogonalcrosshatchfill = 9638; a.squareupperlefttolowerrightfill = 9639; a.squareupperrighttolowerleftfill = 9640; a.squareverticalfill = 9637; a.squarewhitewithsmallblack = 9635; a.srsquare = 13275; a.ssabengali = 2487; a.ssadeva = 2359; a.ssagujarati = 2743; a.ssangcieuckorean = 12617; a.ssanghieuhkorean = 12677; a.ssangieungkorean = 12672; a.ssangkiyeokkorean = 12594; a.ssangnieunkorean = 12645; a.ssangpieupkorean = 12611; a.ssangsioskorean = 12614; a.ssangtikeutkorean = 12600; a.ssuperior = 63218; a.sterling = 163; a.sterlingmonospace = 65505; a.strokelongoverlaycmb = 822; a.strokeshortoverlaycmb = 821; a.subset = 8834; a.subsetnotequal = 8842; a.subsetorequal = 8838; a.succeeds = 8827; a.suchthat = 8715; a.suhiragana = 12377; a.sukatakana = 12473; a.sukatakanahalfwidth = 65405; a.sukunarabic = 1618; a.summation = 8721; a.sun = 9788; a.superset = 8835; a.supersetnotequal = 8843; a.supersetorequal = 8839; a.svsquare = 13276; a.syouwaerasquare = 13180; a.t = 116; a.tabengali = 2468; a.tackdown = 8868; a.tackleft = 8867; a.tadeva = 2340; a.tagujarati = 2724; a.tagurmukhi = 2596; a.taharabic = 1591; a.tahfinalarabic = 65218; a.tahinitialarabic = 65219; a.tahiragana = 12383; a.tahmedialarabic = 65220; a.taisyouerasquare = 13181; a.takatakana = 12479; a.takatakanahalfwidth = 65408; a.tatweelarabic = 1600; a.tau = 964; a.tav = 1514; a.tavdages = 64330; a.tavdagesh = 64330; a.tavdageshhebrew = 64330; a.tavhebrew = 1514; a.tbar = 359; a.tbopomofo = 12554; a.tcaron = 357; a.tccurl = 680; a.tcedilla = 355; a.tcheharabic = 1670; a.tchehfinalarabic = 64379; a.tchehinitialarabic = 64380; a.tchehmedialarabic = 64381; a.tcircle = 9443; a.tcircumflexbelow = 7793; a.tcommaaccent = 355; a.tdieresis = 7831; a.tdotaccent = 7787; a.tdotbelow = 7789; a.tecyrillic = 1090; a.tedescendercyrillic = 1197; a.teharabic = 1578; a.tehfinalarabic = 65174; a.tehhahinitialarabic = 64674; a.tehhahisolatedarabic = 64524; a.tehinitialarabic = 65175; a.tehiragana = 12390; a.tehjeeminitialarabic = 64673; a.tehjeemisolatedarabic = 64523; a.tehmarbutaarabic = 1577; a.tehmarbutafinalarabic = 65172; a.tehmedialarabic = 65176; a.tehmeeminitialarabic = 64676; a.tehmeemisolatedarabic = 64526; a.tehnoonfinalarabic = 64627; a.tekatakana = 12486; a.tekatakanahalfwidth = 65411; a.telephone = 8481; a.telephoneblack = 9742; a.telishagedolahebrew = 1440; a.telishaqetanahebrew = 1449; a.tencircle = 9321; a.tenideographicparen = 12841; a.tenparen = 9341; a.tenperiod = 9361; a.tenroman = 8569; a.tesh = 679; a.tet = 1496; a.tetdagesh = 64312; a.tetdageshhebrew = 64312; a.tethebrew = 1496; a.tetsecyrillic = 1205; a.tevirhebrew = 1435; a.tevirlefthebrew = 1435; a.thabengali = 2469; a.thadeva = 2341; a.thagujarati = 2725; a.thagurmukhi = 2597; a.thalarabic = 1584; a.thalfinalarabic = 65196; a.thanthakhatlowleftthai = 63640; a.thanthakhatlowrightthai = 63639; a.thanthakhatthai = 3660; a.thanthakhatupperleftthai = 63638; a.theharabic = 1579; a.thehfinalarabic = 65178; a.thehinitialarabic = 65179; a.thehmedialarabic = 65180; a.thereexists = 8707; a.therefore = 8756; a.theta = 952; a.theta1 = 977; a.thetasymbolgreek = 977; a.thieuthacirclekorean = 12921; a.thieuthaparenkorean = 12825; a.thieuthcirclekorean = 12907; a.thieuthkorean = 12620; a.thieuthparenkorean = 12811; a.thirteencircle = 9324; a.thirteenparen = 9344; a.thirteenperiod = 9364; a.thonangmonthothai = 3601; a.thook = 429; a.thophuthaothai = 3602; a.thorn = 254; a.thothahanthai = 3607; a.thothanthai = 3600; a.thothongthai = 3608; a.thothungthai = 3606; a.thousandcyrillic = 1154; a.thousandsseparatorarabic = 1644; a.thousandsseparatorpersian = 1644; a.three = 51; a.threearabic = 1635; a.threebengali = 2537; a.threecircle = 9314; a.threecircleinversesansserif = 10124; a.threedeva = 2409; a.threeeighths = 8540; a.threegujarati = 2793; a.threegurmukhi = 2665; a.threehackarabic = 1635; a.threehangzhou = 12323; a.threeideographicparen = 12834; a.threeinferior = 8323; a.threemonospace = 65299; a.threenumeratorbengali = 2550; a.threeoldstyle = 63283; a.threeparen = 9334; a.threeperiod = 9354; a.threepersian = 1779; a.threequarters = 190; a.threequartersemdash = 63198; a.threeroman = 8562; a.threesuperior = 179; a.threethai = 3667; a.thzsquare = 13204; a.tihiragana = 12385; a.tikatakana = 12481; a.tikatakanahalfwidth = 65409; a.tikeutacirclekorean = 12912; a.tikeutaparenkorean = 12816; a.tikeutcirclekorean = 12898; a.tikeutkorean = 12599; a.tikeutparenkorean = 12802; a.tilde = 732; a.tildebelowcmb = 816; a.tildecmb = 771; a.tildecomb = 771; a.tildedoublecmb = 864; a.tildeoperator = 8764; a.tildeoverlaycmb = 820; a.tildeverticalcmb = 830; a.timescircle = 8855; a.tipehahebrew = 1430; a.tipehalefthebrew = 1430; a.tippigurmukhi = 2672; a.titlocyrilliccmb = 1155; a.tiwnarmenian = 1407; a.tlinebelow = 7791; a.tmonospace = 65364; a.toarmenian = 1385; a.tohiragana = 12392; a.tokatakana = 12488; a.tokatakanahalfwidth = 65412; a.tonebarextrahighmod = 741; a.tonebarextralowmod = 745; a.tonebarhighmod = 742; a.tonebarlowmod = 744; a.tonebarmidmod = 743; a.tonefive = 445; a.tonesix = 389; a.tonetwo = 424; a.tonos = 900; a.tonsquare = 13095; a.topatakthai = 3599; a.tortoiseshellbracketleft = 12308; a.tortoiseshellbracketleftsmall = 65117; a.tortoiseshellbracketleftvertical = 65081; a.tortoiseshellbracketright = 12309; a.tortoiseshellbracketrightsmall = 65118; a.tortoiseshellbracketrightvertical = 65082; a.totaothai = 3605; a.tpalatalhook = 427; a.tparen = 9391; a.trademark = 8482; a.trademarksans = 63722; a.trademarkserif = 63195; a.tretroflexhook = 648; a.triagdn = 9660; a.triaglf = 9668; a.triagrt = 9658; a.triagup = 9650; a.ts = 678; a.tsadi = 1510; a.tsadidagesh = 64326; a.tsadidageshhebrew = 64326; a.tsadihebrew = 1510; a.tsecyrillic = 1094; a.tsere = 1461; a.tsere12 = 1461; a.tsere1e = 1461; a.tsere2b = 1461; a.tserehebrew = 1461; a.tserenarrowhebrew = 1461; a.tserequarterhebrew = 1461; a.tserewidehebrew = 1461; a.tshecyrillic = 1115; a.tsuperior = 63219; a.ttabengali = 2463; a.ttadeva = 2335; a.ttagujarati = 2719; a.ttagurmukhi = 2591; a.tteharabic = 1657; a.ttehfinalarabic = 64359; a.ttehinitialarabic = 64360; a.ttehmedialarabic = 64361; a.tthabengali = 2464; a.tthadeva = 2336; a.tthagujarati = 2720; a.tthagurmukhi = 2592; a.tturned = 647; a.tuhiragana = 12388; a.tukatakana = 12484; a.tukatakanahalfwidth = 65410; a.tusmallhiragana = 12387; a.tusmallkatakana = 12483; a.tusmallkatakanahalfwidth = 65391; a.twelvecircle = 9323; a.twelveparen = 9343; a.twelveperiod = 9363; a.twelveroman = 8571; a.twentycircle = 9331; a.twentyhangzhou = 21316; a.twentyparen = 9351; a.twentyperiod = 9371; a.two = 50; a.twoarabic = 1634; a.twobengali = 2536; a.twocircle = 9313; a.twocircleinversesansserif = 10123; a.twodeva = 2408; a.twodotenleader = 8229; a.twodotleader = 8229; a.twodotleadervertical = 65072; a.twogujarati = 2792; a.twogurmukhi = 2664; a.twohackarabic = 1634; a.twohangzhou = 12322; a.twoideographicparen = 12833; a.twoinferior = 8322; a.twomonospace = 65298; a.twonumeratorbengali = 2549; a.twooldstyle = 63282; a.twoparen = 9333; a.twoperiod = 9353; a.twopersian = 1778; a.tworoman = 8561; a.twostroke = 443; a.twosuperior = 178; a.twothai = 3666; a.twothirds = 8532; a.u = 117; a.uacute = 250; a.ubar = 649; a.ubengali = 2441; a.ubopomofo = 12584; a.ubreve = 365; a.ucaron = 468; a.ucircle = 9444; a.ucircumflex = 251; a.ucircumflexbelow = 7799; a.ucyrillic = 1091; a.udattadeva = 2385; a.udblacute = 369; a.udblgrave = 533; a.udeva = 2313; a.udieresis = 252; a.udieresisacute = 472; a.udieresisbelow = 7795; a.udieresiscaron = 474; a.udieresiscyrillic = 1265; a.udieresisgrave = 476; a.udieresismacron = 470; a.udotbelow = 7909; a.ugrave = 249; a.ugujarati = 2697; a.ugurmukhi = 2569; a.uhiragana = 12358; a.uhookabove = 7911; a.uhorn = 432; a.uhornacute = 7913; a.uhorndotbelow = 7921; a.uhorngrave = 7915; a.uhornhookabove = 7917; a.uhorntilde = 7919; a.uhungarumlaut = 369; a.uhungarumlautcyrillic = 1267; a.uinvertedbreve = 535; a.ukatakana = 12454; a.ukatakanahalfwidth = 65395; a.ukcyrillic = 1145; a.ukorean = 12636; a.umacron = 363; a.umacroncyrillic = 1263; a.umacrondieresis = 7803; a.umatragurmukhi = 2625; a.umonospace = 65365; a.underscore = 95; a.underscoredbl = 8215; a.underscoremonospace = 65343; a.underscorevertical = 65075; a.underscorewavy = 65103; a.union = 8746; a.universal = 8704; a.uogonek = 371; a.uparen = 9392; a.upblock = 9600; a.upperdothebrew = 1476; a.upsilon = 965; a.upsilondieresis = 971; a.upsilondieresistonos = 944; a.upsilonlatin = 650; a.upsilontonos = 973; a.uptackbelowcmb = 797; a.uptackmod = 724; a.uragurmukhi = 2675; a.uring = 367; a.ushortcyrillic = 1118; a.usmallhiragana = 12357; a.usmallkatakana = 12453; a.usmallkatakanahalfwidth = 65385; a.ustraightcyrillic = 1199; a.ustraightstrokecyrillic = 1201; a.utilde = 361; a.utildeacute = 7801; a.utildebelow = 7797; a.uubengali = 2442; a.uudeva = 2314; a.uugujarati = 2698; a.uugurmukhi = 2570; a.uumatragurmukhi = 2626; a.uuvowelsignbengali = 2498; a.uuvowelsigndeva = 2370; a.uuvowelsigngujarati = 2754; a.uvowelsignbengali = 2497; a.uvowelsigndeva = 2369; a.uvowelsigngujarati = 2753; a.v = 118; a.vadeva = 2357; a.vagujarati = 2741; a.vagurmukhi = 2613; a.vakatakana = 12535; a.vav = 1493; a.vavdagesh = 64309; a.vavdagesh65 = 64309; a.vavdageshhebrew = 64309; a.vavhebrew = 1493; a.vavholam = 64331; a.vavholamhebrew = 64331; a.vavvavhebrew = 1520; a.vavyodhebrew = 1521; a.vcircle = 9445; a.vdotbelow = 7807; a.vecyrillic = 1074; a.veharabic = 1700; a.vehfinalarabic = 64363; a.vehinitialarabic = 64364; a.vehmedialarabic = 64365; a.vekatakana = 12537; a.venus = 9792; a.verticalbar = 124; a.verticallineabovecmb = 781; a.verticallinebelowcmb = 809; a.verticallinelowmod = 716; a.verticallinemod = 712; a.vewarmenian = 1406; a.vhook = 651; a.vikatakana = 12536; a.viramabengali = 2509; a.viramadeva = 2381; a.viramagujarati = 2765; a.visargabengali = 2435; a.visargadeva = 2307; a.visargagujarati = 2691; a.vmonospace = 65366; a.voarmenian = 1400; a.voicediterationhiragana = 12446; a.voicediterationkatakana = 12542; a.voicedmarkkana = 12443; a.voicedmarkkanahalfwidth = 65438; a.vokatakana = 12538; a.vparen = 9393; a.vtilde = 7805; a.vturned = 652; a.vuhiragana = 12436; a.vukatakana = 12532; a.w = 119; a.wacute = 7811; a.waekorean = 12633; a.wahiragana = 12431; a.wakatakana = 12527; a.wakatakanahalfwidth = 65436; a.wakorean = 12632; a.wasmallhiragana = 12430; a.wasmallkatakana = 12526; a.wattosquare = 13143; a.wavedash = 12316; a.wavyunderscorevertical = 65076; a.wawarabic = 1608; a.wawfinalarabic = 65262; a.wawhamzaabovearabic = 1572; a.wawhamzaabovefinalarabic = 65158; a.wbsquare = 13277; a.wcircle = 9446; a.wcircumflex = 373; a.wdieresis = 7813; a.wdotaccent = 7815; a.wdotbelow = 7817; a.wehiragana = 12433; a.weierstrass = 8472; a.wekatakana = 12529; a.wekorean = 12638; a.weokorean = 12637; a.wgrave = 7809; a.whitebullet = 9702; a.whitecircle = 9675; a.whitecircleinverse = 9689; a.whitecornerbracketleft = 12302; a.whitecornerbracketleftvertical = 65091; a.whitecornerbracketright = 12303; a.whitecornerbracketrightvertical = 65092; a.whitediamond = 9671; a.whitediamondcontainingblacksmalldiamond = 9672; a.whitedownpointingsmalltriangle = 9663; a.whitedownpointingtriangle = 9661; a.whiteleftpointingsmalltriangle = 9667; a.whiteleftpointingtriangle = 9665; a.whitelenticularbracketleft = 12310; a.whitelenticularbracketright = 12311; a.whiterightpointingsmalltriangle = 9657; a.whiterightpointingtriangle = 9655; a.whitesmallsquare = 9643; a.whitesmilingface = 9786; a.whitesquare = 9633; a.whitestar = 9734; a.whitetelephone = 9743; a.whitetortoiseshellbracketleft = 12312; a.whitetortoiseshellbracketright = 12313; a.whiteuppointingsmalltriangle = 9653; a.whiteuppointingtriangle = 9651; a.wihiragana = 12432; a.wikatakana = 12528; a.wikorean = 12639; a.wmonospace = 65367; a.wohiragana = 12434; a.wokatakana = 12530; a.wokatakanahalfwidth = 65382; a.won = 8361; a.wonmonospace = 65510; a.wowaenthai = 3623; a.wparen = 9394; a.wring = 7832; a.wsuperior = 695; a.wturned = 653; a.wynn = 447; a.x = 120; a.xabovecmb = 829; a.xbopomofo = 12562; a.xcircle = 9447; a.xdieresis = 7821; a.xdotaccent = 7819; a.xeharmenian = 1389; a.xi = 958; a.xmonospace = 65368; a.xparen = 9395; a.xsuperior = 739; a.y = 121; a.yaadosquare = 13134; a.yabengali = 2479; a.yacute = 253; a.yadeva = 2351; a.yaekorean = 12626; a.yagujarati = 2735; a.yagurmukhi = 2607; a.yahiragana = 12420; a.yakatakana = 12516; a.yakatakanahalfwidth = 65428; a.yakorean = 12625; a.yamakkanthai = 3662; a.yasmallhiragana = 12419; a.yasmallkatakana = 12515; a.yasmallkatakanahalfwidth = 65388; a.yatcyrillic = 1123; a.ycircle = 9448; a.ycircumflex = 375; a.ydieresis = 255; a.ydotaccent = 7823; a.ydotbelow = 7925; a.yeharabic = 1610; a.yehbarreearabic = 1746; a.yehbarreefinalarabic = 64431; a.yehfinalarabic = 65266; a.yehhamzaabovearabic = 1574; a.yehhamzaabovefinalarabic = 65162; a.yehhamzaaboveinitialarabic = 65163; a.yehhamzaabovemedialarabic = 65164; a.yehinitialarabic = 65267; a.yehmedialarabic = 65268; a.yehmeeminitialarabic = 64733; a.yehmeemisolatedarabic = 64600; a.yehnoonfinalarabic = 64660; a.yehthreedotsbelowarabic = 1745; a.yekorean = 12630; a.yen = 165; a.yenmonospace = 65509; a.yeokorean = 12629; a.yeorinhieuhkorean = 12678; a.yerahbenyomohebrew = 1450; a.yerahbenyomolefthebrew = 1450; a.yericyrillic = 1099; a.yerudieresiscyrillic = 1273; a.yesieungkorean = 12673; a.yesieungpansioskorean = 12675; a.yesieungsioskorean = 12674; a.yetivhebrew = 1434; a.ygrave = 7923; a.yhook = 436; a.yhookabove = 7927; a.yiarmenian = 1397; a.yicyrillic = 1111; a.yikorean = 12642; a.yinyang = 9775; a.yiwnarmenian = 1410; a.ymonospace = 65369; a.yod = 1497; a.yoddagesh = 64313; a.yoddageshhebrew = 64313; a.yodhebrew = 1497; a.yodyodhebrew = 1522; a.yodyodpatahhebrew = 64287; a.yohiragana = 12424; a.yoikorean = 12681; a.yokatakana = 12520; a.yokatakanahalfwidth = 65430; a.yokorean = 12635; a.yosmallhiragana = 12423; a.yosmallkatakana = 12519; a.yosmallkatakanahalfwidth = 65390; a.yotgreek = 1011; a.yoyaekorean = 12680; a.yoyakorean = 12679; a.yoyakthai = 3618; a.yoyingthai = 3597; a.yparen = 9396; a.ypogegrammeni = 890; a.ypogegrammenigreekcmb = 837; a.yr = 422; a.yring = 7833; a.ysuperior = 696; a.ytilde = 7929; a.yturned = 654; a.yuhiragana = 12422; a.yuikorean = 12684; a.yukatakana = 12518; a.yukatakanahalfwidth = 65429; a.yukorean = 12640; a.yusbigcyrillic = 1131; a.yusbigiotifiedcyrillic = 1133; a.yuslittlecyrillic = 1127; a.yuslittleiotifiedcyrillic = 1129; a.yusmallhiragana = 12421; a.yusmallkatakana = 12517; a.yusmallkatakanahalfwidth = 65389; a.yuyekorean = 12683; a.yuyeokorean = 12682; a.yyabengali = 2527; a.yyadeva = 2399; a.z = 122; a.zaarmenian = 1382; a.zacute = 378; a.zadeva = 2395; a.zagurmukhi = 2651; a.zaharabic = 1592; a.zahfinalarabic = 65222; a.zahinitialarabic = 65223; a.zahiragana = 12374; a.zahmedialarabic = 65224; a.zainarabic = 1586; a.zainfinalarabic = 65200; a.zakatakana = 12470; a.zaqefgadolhebrew = 1429; a.zaqefqatanhebrew = 1428; a.zarqahebrew = 1432; a.zayin = 1494; a.zayindagesh = 64310; a.zayindageshhebrew = 64310; a.zayinhebrew = 1494; a.zbopomofo = 12567; a.zcaron = 382; a.zcircle = 9449; a.zcircumflex = 7825; a.zcurl = 657; a.zdot = 380; a.zdotaccent = 380; a.zdotbelow = 7827; a.zecyrillic = 1079; a.zedescendercyrillic = 1177; a.zedieresiscyrillic = 1247; a.zehiragana = 12380; a.zekatakana = 12476; a.zero = 48; a.zeroarabic = 1632; a.zerobengali = 2534; a.zerodeva = 2406; a.zerogujarati = 2790; a.zerogurmukhi = 2662; a.zerohackarabic = 1632; a.zeroinferior = 8320; a.zeromonospace = 65296; a.zerooldstyle = 63280; a.zeropersian = 1776; a.zerosuperior = 8304; a.zerothai = 3664; a.zerowidthjoiner = 65279; a.zerowidthnonjoiner = 8204; a.zerowidthspace = 8203; a.zeta = 950; a.zhbopomofo = 12563; a.zhearmenian = 1386; a.zhebrevecyrillic = 1218; a.zhecyrillic = 1078; a.zhedescendercyrillic = 1175; a.zhedieresiscyrillic = 1245; a.zihiragana = 12376; a.zikatakana = 12472; a.zinorhebrew = 1454; a.zlinebelow = 7829; a.zmonospace = 65370; a.zohiragana = 12382; a.zokatakana = 12478; a.zparen = 9397; a.zretroflexhook = 656; a.zstroke = 438; a.zuhiragana = 12378; a.zukatakana = 12474; a[".notdef"] = 0 }), R = R(function (a) { a.space = 32; a.a1 = 9985; a.a2 = 9986; a.a202 = 9987; a.a3 = 9988; a.a4 = 9742; a.a5 = 9990; a.a119 = 9991; a.a118 = 9992; a.a117 = 9993; a.a11 = 9755; a.a12 = 9758; a.a13 = 9996; a.a14 = 9997; a.a15 = 9998; a.a16 = 9999; a.a105 = 1E4; a.a17 = 10001; a.a18 = 10002; a.a19 = 10003; a.a20 = 10004; a.a21 = 10005; a.a22 = 10006; a.a23 = 10007; a.a24 = 10008; a.a25 = 10009; a.a26 = 10010; a.a27 = 10011; a.a28 = 10012; a.a6 = 10013; a.a7 = 10014; a.a8 = 10015; a.a9 = 10016; a.a10 = 10017; a.a29 = 10018; a.a30 = 10019; a.a31 = 10020; a.a32 = 10021; a.a33 = 10022; a.a34 = 10023; a.a35 = 9733; a.a36 = 10025; a.a37 = 10026; a.a38 = 10027; a.a39 = 10028; a.a40 = 10029; a.a41 = 10030; a.a42 = 10031; a.a43 = 10032; a.a44 = 10033; a.a45 = 10034; a.a46 = 10035; a.a47 = 10036; a.a48 = 10037; a.a49 = 10038; a.a50 = 10039; a.a51 = 10040; a.a52 = 10041; a.a53 = 10042; a.a54 = 10043; a.a55 = 10044; a.a56 = 10045; a.a57 = 10046; a.a58 = 10047; a.a59 = 10048; a.a60 = 10049; a.a61 = 10050; a.a62 = 10051; a.a63 = 10052; a.a64 = 10053; a.a65 = 10054; a.a66 = 10055; a.a67 = 10056; a.a68 = 10057; a.a69 = 10058; a.a70 = 10059; a.a71 = 9679; a.a72 = 10061; a.a73 = 9632; a.a74 = 10063; a.a203 = 10064; a.a75 = 10065; a.a204 = 10066; a.a76 = 9650; a.a77 = 9660; a.a78 = 9670; a.a79 = 10070; a.a81 = 9687; a.a82 = 10072; a.a83 = 10073; a.a84 = 10074; a.a97 = 10075; a.a98 = 10076; a.a99 = 10077; a.a100 = 10078; a.a101 = 10081; a.a102 = 10082; a.a103 = 10083; a.a104 = 10084; a.a106 = 10085; a.a107 = 10086; a.a108 = 10087; a.a112 = 9827; a.a111 = 9830; a.a110 = 9829; a.a109 = 9824; a.a120 = 9312; a.a121 = 9313; a.a122 = 9314; a.a123 = 9315; a.a124 = 9316; a.a125 = 9317; a.a126 = 9318; a.a127 = 9319; a.a128 = 9320; a.a129 = 9321; a.a130 = 10102; a.a131 = 10103; a.a132 = 10104; a.a133 = 10105; a.a134 = 10106; a.a135 = 10107; a.a136 = 10108; a.a137 = 10109; a.a138 = 10110; a.a139 = 10111; a.a140 = 10112; a.a141 = 10113; a.a142 = 10114; a.a143 = 10115; a.a144 = 10116; a.a145 = 10117; a.a146 = 10118; a.a147 = 10119; a.a148 = 10120; a.a149 = 10121; a.a150 = 10122; a.a151 = 10123; a.a152 = 10124; a.a153 = 10125; a.a154 = 10126; a.a155 = 10127; a.a156 = 10128; a.a157 = 10129; a.a158 = 10130; a.a159 = 10131; a.a160 = 10132; a.a161 = 8594; a.a163 = 8596; a.a164 = 8597; a.a196 = 10136; a.a165 = 10137; a.a192 = 10138; a.a166 = 10139; a.a167 = 10140; a.a168 = 10141; a.a169 = 10142; a.a170 = 10143; a.a171 = 10144; a.a172 = 10145; a.a173 = 10146; a.a162 = 10147; a.a174 = 10148; a.a175 = 10149; a.a176 = 10150; a.a177 = 10151; a.a178 = 10152; a.a179 = 10153; a.a193 = 10154; a.a180 = 10155; a.a199 = 10156; a.a181 = 10157; a.a200 = 10158; a.a182 = 10159; a.a201 = 10161; a.a183 = 10162; a.a184 = 10163; a.a197 = 10164; a.a185 = 10165; a.a194 = 10166; a.a198 = 10167; a.a186 = 10168; a.a195 = 10169; a.a187 = 10170; a.a188 = 10171; a.a189 = 10172; a.a190 = 10173; a.a191 = 10174; a.a89 = 10088; a.a90 = 10089; a.a93 = 10090; a.a94 = 10091; a.a91 = 10092; a.a92 = 10093; a.a205 = 10094; a.a85 = 10095; a.a206 = 10096; a.a86 = 10097; a.a87 = 10098; a.a88 = 10099; a.a95 = 10100; a.a96 = 10101; a[".notdef"] = 0 }); e.getGlyphsUnicode = O; e.getDingbatsGlyphsUnicode = R }); (function (e, l) { l(e.pdfjsCoreJbig2 = {}, e.pdfjsSharedUtil, e.pdfjsCoreArithmeticDecoder) })(this, function (e, l, R) { var O = l.error, a = l.log2, b = l.readInt8, L = l.readUint16, Q = l.readUint32, k = l.shadow, I = R.ArithmeticDecoder; l = function () { function e() { } function l(a, b, m) { this.data = a; this.start = b; this.end = m } function u(a, b, m) { function d(a) { for (var b = 0, d = 0; d < a; d++) { var g = m.readBit(f, q); q = 256 > q ? q << 1 | g : (q << 1 | g) & 511 | 256; b = b << 1 | g } return b >>> 0 } var f = a.getContexts(b), q = 1; a = d(1); b = d(1) ? d(1) ? d(1) ? d(1) ? d(1) ? d(32) + 4436 : d(12) + 340 : d(8) + 84 : d(6) + 20 : d(4) + 4 : d(2); return 0 === a ? b : 0 < b ? -b : null } function G(a, b, m) { a = a.getContexts("IAID"); for (var d = 1, f = 0; f < m; f++) var q = b.readBit(a, d), d = d << 1 | q; return 31 > m ? d & (1 << m) - 1 : d & 2147483647 } function M(a, b, m) { var d = m.decoder; m = m.contextCache.getContexts("GB"); var f, q, k, c, h, n, B, E = []; for (q = 0; q < b; q++) for (h = E[q] = new Uint8Array(a), n = 1 > q ? h : E[q - 1], B = 2 > q ? h : E[q - 2], f = B[0] << 13 | B[1] << 12 | B[2] << 11 | n[0] << 7 | n[1] << 6 | n[2] << 5 | n[3] << 4, k = 0; k < a; k++) h[k] = c = d.readBit(m, f), f = (f & 31735) << 1 | (k + 3 < a ? B[k + 3] << 11 : 0) | (k + 4 < a ? n[k + 4] << 4 : 0) | c; return E } function K(a, b, k, d, f, q, w, U) { a && O("JBIG2 error: MMR encoding is not supported"); if (0 === d && !q && !f && 4 === w.length && 3 === w[0].x && -1 === w[0].y && -3 === w[1].x && -1 === w[1].y && 2 === w[2].x && -2 === w[2].y && -2 === w[3].x && -2 === w[3].y) return M(b, k, U); a = !!q; var h = c[d].concat(w); h.sort(function (a, b) { return a.y - b.y || a.x - b.x }); w = h.length; var n = new Int8Array(w), B = new Int8Array(w), E = [], t = 0, x = 0, S = 0, z = 0, y, p; for (p = 0; p < w; p++) n[p] = h[p].x, B[p] = h[p].y, x = Math.min(x, h[p].x), S = Math.max(S, h[p].x), z = Math.min(z, h[p].y), p < w - 1 && h[p].y === h[p + 1].y && h[p].x === h[p + 1].x - 1 ? t |= 1 << w - 1 - p : E.push(p); var D = E.length, e = new Int8Array(D), v = new Int8Array(D), l = new Uint16Array(D); for (y = 0; y < D; y++) p = E[y], e[y] = h[p].x, v[y] = h[p].y, l[y] = 1 << w - 1 - p; h = -x; z = -z; S = b - S; d = F[d]; E = new Uint8Array(b); x = []; y = U.decoder; U = U.contextCache.getContexts("GB"); for (var C = 0, r, u, H, J = 0, G, K = 0; K < k; K++) { if (f && (p = y.readBit(U, d), C ^= p)) { x.push(E); continue } E = new Uint8Array(E); x.push(E); for (r = 0; r < b; r++) if (a && q[K][r]) E[r] = 0; else { if (r >= h && r < S && K >= z) for (J = J << 1 & t, p = 0; p < D; p++) { if (u = K + v[p], H = r + e[p], u = x[u][H]) u = l[p], J |= u } else for (J = 0, G = w - 1, p = 0; p < w; p++, G--) H = r + n[p], 0 <= H && H < b && (u = K + B[p], 0 <= u && (u = x[u][H]) && (J |= u << G)); p = y.readBit(U, J); E[r] = p } } return x } function J(a, b, k, d, f, q, w, c, h) { var T = C[k].coding; 0 === k && (T = T.concat([c[0]])); var B = T.length, E = new Int32Array(B), t = new Int32Array(B), x; for (x = 0; x < B; x++) E[x] = T[x].x, t[x] = T[x].y; var S = C[k].reference; 0 === k && (S = S.concat([c[1]])); c = S.length; var T = new Int32Array(c), z = new Int32Array(c); for (x = 0; x < c; x++) T[x] = S[x].x, z[x] = S[x].y; var S = d[0].length, y = d.length; k = n[k]; var p = [], D = h.decoder; h = h.contextCache.getContexts("GR"); for (var e = 0, v = 0; v < b; v++) { w && (x = D.readBit(h, k), (e ^= x) && O("JBIG2 error: prediction is not supported")); var l = new Uint8Array(a); p.push(l); for (var F = 0; F < a; F++) { var r, u, H = 0; for (x = 0; x < B; x++) r = v + t[x], u = F + E[x], H = 0 > r || 0 > u || u >= a ? H << 1 : H << 1 | p[r][u]; for (x = 0; x < c; x++) r = v + z[x] + q, u = F + T[x] + f, H = 0 > r || r >= y || 0 > u || u >= S ? H << 1 : H << 1 | d[r][u]; x = D.readBit(h, H); l[F] = x } } return p } function v(a, b, k, d, f, q, w, c, h, n, B, E, t, x, S, z, y) { a && O("JBIG2 error: huffman is not supported"); a = []; var p; for (x = 0; x < d; x++) { p = new Uint8Array(k); if (f) for (var D = 0; D < k; D++) p[D] = f; a.push(p) } d = y.decoder; f = y.contextCache; var D = -u(f, "IADT", d), e = 0; for (x = 0; x < q;) { var v = u(f, "IADT", d), D = D + v, v = u(f, "IAFS", d), v = e += v; do { var l = 1 === w ? 0 : u(f, "IAIT", d); p = w * D + l; var l = G(f, d, h), F = b && u(f, "IARI", d), l = c[l], C = l[0].length, r = l.length; if (F) var F = u(f, "IARDW", d), H = u(f, "IARDH", d), M = u(f, "IARDX", d), K = u(f, "IARDY", d), C = C + F, r = r + H, l = J(C, r, S, l, (F >> 1) + M, (H >> 1) + K, !1, z, y); var F = p - (E & 1 ? 0 : r), H = v - (E & 2 ? C : 0), P; if (n) { for (M = 0; M < r; M++) if (p = a[H + M]) { P = l[M]; var I = Math.min(k - F, C); switch (t) { case 0: for (K = 0; K < I; K++) p[F + K] |= P[K]; break; case 2: for (K = 0; K < I; K++) p[F + K] ^= P[K]; break; default: O("JBIG2 error: operator " + t + " is not supported") } } v += r - 1 } else { for (K = 0; K < r; K++) if (p = a[F + K]) switch (P = l[K], t) { case 0: for (M = 0; M < C; M++) p[H + M] |= P[M]; break; case 2: for (M = 0; M < C; M++) p[H + M] ^= P[M]; break; default: O("JBIG2 error: operator " + t + " is not supported") } v += C - 1 } x++; l = u(f, "IADS", d); if (null === l) break; v += l + B } while (1) } return a } function r(a, b) { return { width: Q(a, b), height: Q(a, b + 4), x: Q(a, b + 8), y: Q(a, b + 12), combinationOperator: a[b + 16] & 7 } } function P() { } function H() { } e.prototype = { getContexts: function (a) { return a in this ? this[a] : this[a] = new Int8Array(65536) } }; l.prototype = { get decoder() { var a = new I(this.data, this.start, this.end); return k(this, "decoder", a) }, get contextCache() { var a = new e; return k(this, "contextCache", a) } }; var h = ["SymbolDictionary", null, null, null, "IntermediateTextRegion", null, "ImmediateTextRegion", "ImmediateLosslessTextRegion", null, null, null, null, null, null, null, null, "patternDictionary", null, null, null, "IntermediateHalftoneRegion", null, "ImmediateHalftoneRegion", "ImmediateLosslessHalftoneRegion", null, null, null, null, null, null, null, null, null, null, null, null, "IntermediateGenericRegion", null, "ImmediateGenericRegion", "ImmediateLosslessGenericRegion", "IntermediateGenericRefinementRegion", null, "ImmediateGenericRefinementRegion", "ImmediateLosslessGenericRefinementRegion", null, null, null, null, "PageInformation", "EndOfPage", "EndOfStripe", "EndOfFile", "Profiles", "Tables", null, null, null, null, null, null, null, null, "Extension"], c = [[{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: 2, y: -1 }, { x: -4, y: 0 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: 2, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: 2, y: -1 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -3, y: -1 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -4, y: 0 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }]], C = [{ coding: [{ x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }], reference: [{ x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }, { x: 0, y: 0 }, { x: 1, y: 0 }, { x: -1, y: 1 }, { x: 0, y: 1 }, { x: 1, y: 1 }] }, { coding: [{ x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }], reference: [{ x: 0, y: -1 }, { x: -1, y: 0 }, { x: 0, y: 0 }, { x: 1, y: 0 }, { x: 0, y: 1 }, { x: 1, y: 1 }] }], F = [39717, 1941, 229, 405], n = [32, 8]; P.prototype = { onPageInformation: function (a) { this.currentPageInfo = a; var b = new Uint8Array((a.width + 7 >> 3) * a.height); if (a.defaultPixelValue) { a = 0; for (var k = b.length; a < k; a++) b[a] = 255 } this.buffer = b }, drawBitmap: function (a, b) { var k = this.currentPageInfo, d = a.width, f = a.height, q = k.width + 7 >> 3, w = k.combinationOperatorOverride ? a.combinationOperator : k.combinationOperator, k = this.buffer, c = 128 >> (a.x & 7), h = a.y * q + (a.x >> 3), n, B, E; switch (w) { case 0: for (w = 0; w < f; w++) { B = c; E = h; for (n = 0; n < d; n++) b[w][n] && (k[E] |= B), B >>= 1, B || (B = 128, E++); h += q } break; case 2: for (w = 0; w < f; w++) { B = c; E = h; for (n = 0; n < d; n++) b[w][n] && (k[E] ^= B), B >>= 1, B || (B = 128, E++); h += q } break; default: O("JBIG2 error: operator " + w + " is not supported") } }, onImmediateGenericRegion: function (a, b, k, d) { var f = a.info; b = new l(b, k, d); a = K(a.mmr, f.width, f.height, a.template, a.prediction, null, a.at, b); this.drawBitmap(f, a) }, onImmediateLosslessGenericRegion: function () { this.onImmediateGenericRegion.apply(this, arguments) }, onSymbolDictionary: function (b, k, m, d, f, q) { b.huffman && O("JBIG2 error: huffman is not supported"); var w = this.symbols; w || (this.symbols = w = {}); for (var c = [], h = 0, n = m.length; h < n; h++) c = c.concat(w[m[h]]); q = new l(d, f, q); h = b.huffman; n = b.refinement; m = c; var c = b.numberOfNewSymbols, B = b.template, E = b.at, t = b.refinementTemplate, x = b.refinementAt; h && O("JBIG2 error: huffman is not supported"); b = []; var S = 0, z = a(m.length + c); d = q.decoder; for (f = q.contextCache; b.length < c;) for (var y = u(f, "IADH", d), S = S + y, y = 0; ;) { var p = u(f, "IADW", d); if (null === p) break; y += p; if (n) if (p = u(f, "IAAI", d), 1 < p) p = v(h, n, y, S, 0, p, 1, m.concat(b), z, 0, 0, 1, 0, void 0, t, x, q); else var p = G(f, d, z), D = u(f, "IARDX", d), e = u(f, "IARDY", d), p = J(y, S, t, p < m.length ? m[p] : b[p - m.length], D, e, !1, x, q); else p = K(!1, y, S, B, !1, null, E, q); b.push(p) } q = []; h = []; n = !1; for (B = m.length + c; h.length < B;) { for (E = u(f, "IAEX", d) ; E--;) h.push(n); n = !n } d = 0; for (f = m.length; d < f; d++) h[d] && q.push(m[d]); for (m = 0; m < c; d++, m++) h[d] && q.push(b[m]); w[k] = q }, onImmediateTextRegion: function (b, k, m, d, f) { for (var q = b.info, w = this.symbols, c = [], h = 0, n = k.length; h < n; h++) c = c.concat(w[k[h]]); k = a(c.length); m = new l(m, d, f); b = v(b.huffman, b.refinement, q.width, q.height, b.defaultPixelValue, b.numberOfSymbolInstances, b.stripSize, c, k, b.transposed, b.dsOffset, b.referenceCorner, b.combinationOperator, void 0, b.refinementTemplate, b.refinementAt, m); this.drawBitmap(q, b) }, onImmediateLosslessTextRegion: function () { this.onImmediateTextRegion.apply(this, arguments) } }; H.prototype = { parseChunks: function (a) { for (var k = new P, m = 0, d = a.length; m < d; m++) { for (var f = a[m], q = {}, w = f.data, c = f.end, n = [], T = f.start; T < c;) { var f = w, B = T, T = {}; T.number = Q(f, B); var E = f[B + 4], t = E & 63; h[t] || O("JBIG2 error: invalid segment type: " + t); T.type = t; T.typeName = h[t]; T.deferredNonRetain = !!(E & 128); var E = !!(E & 64), x = f[B + 5], S = x >> 5 & 7, z = [x & 31], B = B + 6; if (7 === x) for (S = Q(f, B - 1) & 536870911, B += 3, x = S + 7 >> 3, z[0] = f[B++]; 0 < --x;) z.push(f[B++]); else 5 !== x && 6 !== x || O("JBIG2 error: invalid referred-to flags"); T.retainBits = z; for (var y = 256 >= T.number ? 1 : 65536 >= T.number ? 2 : 4, p = [], x = z = void 0, z = 0; z < S; z++) x = 1 === y ? f[B] : 2 === y ? L(f, B) : Q(f, B), p.push(x), B += y; T.referredTo = p; E ? (T.pageAssociation = Q(f, B), B += 4) : T.pageAssociation = f[B++]; T.length = Q(f, B); B += 4; if (4294967295 === T.length) if (38 === t) { E = r(f, B); S = !!(f[B + 17] & 1); t = new Uint8Array(6); S || (t[0] = 255, t[1] = 172); t[2] = E.height >>> 24 & 255; t[3] = E.height >> 16 & 255; t[4] = E.height >> 8 & 255; t[5] = E.height & 255; z = B; for (x = f.length; z < x; z++) { for (E = 0; 6 > E && t[E] === f[z + E];) E++; if (6 === E) { T.length = z + 6; break } } 4294967295 === T.length && O("JBIG2 error: segment end was not found") } else O("JBIG2 error: invalid unknown segment length"); T.headerEnd = B; f = T; T = f.headerEnd; B = { header: f, data: w }; q.randomAccess || (B.start = T, T += f.length, B.end = T); n.push(B); if (51 === f.type) break } if (q.randomAccess) for (q = 0, w = n.length; q < w; q++) n[q].start = T, T += n[q].header.length, n[q].end = T; q = k; w = 0; for (c = n.length; w < c; w++) { E = n[w]; f = q; T = E.header; B = E.data; t = E.start; E = E.end; x = z = S = y = void 0; switch (T.type) { case 0: y = {}; S = L(B, t); y.huffman = !!(S & 1); y.refinement = !!(S & 2); y.huffmanDHSelector = S >> 2 & 3; y.huffmanDWSelector = S >> 4 & 3; y.bitmapSizeSelector = S >> 6 & 1; y.aggregationInstancesSelector = S >> 7 & 1; y.bitmapCodingContextUsed = !!(S & 256); y.bitmapCodingContextRetained = !!(S & 512); y.template = S >> 10 & 3; y.refinementTemplate = S >> 12 & 1; t += 2; if (!y.huffman) { x = 0 === y.template ? 4 : 1; S = []; for (z = 0; z < x; z++) S.push({ x: b(B, t), y: b(B, t + 1) }), t += 2; y.at = S } if (y.refinement && !y.refinementTemplate) { S = []; for (z = 0; 2 > z; z++) S.push({ x: b(B, t), y: b(B, t + 1) }), t += 2; y.refinementAt = S } y.numberOfExportedSymbols = Q(B, t); t += 4; y.numberOfNewSymbols = Q(B, t); t += 4; y = [y, T.number, T.referredTo, B, t, E]; break; case 6: case 7: x = {}; x.info = r(B, t); t += 17; S = L(B, t); t += 2; x.huffman = !!(S & 1); x.refinement = !!(S & 2); x.stripSize = 1 << (S >> 2 & 3); x.referenceCorner = S >> 4 & 3; x.transposed = !!(S & 64); x.combinationOperator = S >> 7 & 3; x.defaultPixelValue = S >> 9 & 1; x.dsOffset = S << 17 >> 27; x.refinementTemplate = S >> 15 & 1; x.huffman && (S = L(B, t), t += 2, x.huffmanFS = S & 3, x.huffmanDS = S >> 2 & 3, x.huffmanDT = S >> 4 & 3, x.huffmanRefinementDW = S >> 6 & 3, x.huffmanRefinementDH = S >> 8 & 3, x.huffmanRefinementDX = S >> 10 & 3, x.huffmanRefinementDY = S >> 12 & 3, x.huffmanRefinementSizeSelector = !!(S & 14)); if (x.refinement && !x.refinementTemplate) { S = []; for (z = 0; 2 > z; z++) S.push({ x: b(B, t), y: b(B, t + 1) }), t += 2; x.refinementAt = S } x.numberOfSymbolInstances = Q(B, t); t += 4; x.huffman && O("JBIG2 error: huffman is not supported"); y = [x, T.referredTo, B, t, E]; break; case 38: case 39: y = {}; y.info = r(B, t); t += 17; S = B[t++]; y.mmr = !!(S & 1); y.template = S >> 1 & 3; y.prediction = !!(S & 8); if (!y.mmr) { x = 0 === y.template ? 4 : 1; S = []; for (z = 0; z < x; z++) S.push({ x: b(B, t), y: b(B, t + 1) }), t += 2; y.at = S } y = [y, B, t, E]; break; case 48: E = { width: Q(B, t), height: Q(B, t + 4), resolutionX: Q(B, t + 8), resolutionY: Q(B, t + 12) }; 4294967295 === E.height && delete E.height; S = B[t + 16]; L(B, t + 17); E.lossless = !!(S & 1); E.refinement = !!(S & 2); E.defaultPixelValue = S >> 2 & 1; E.combinationOperator = S >> 3 & 3; E.requiresBuffer = !!(S & 32); E.combinationOperatorOverride = !!(S & 64); y = [E]; break; case 49: break; case 50: break; case 51: break; case 62: break; default: O("JBIG2 error: segment type " + T.typeName + "(" + T.type + ") is not implemented") } T = "on" + T.typeName; T in f && f[T].apply(f, y) } } return k.buffer } }; return H }(); e.Jbig2Image = l }); (function (e, l) { l(e.pdfjsCoreJpx = {}, e.pdfjsSharedUtil, e.pdfjsCoreArithmeticDecoder) })(this, function (e, l, R) { var O = l.info, a = l.log2, b = l.readUint16, L = l.readUint32, Q = l.warn, k = R.ArithmeticDecoder; l = function () { function e() { this.failOnCorruptedImage = !1 } function l(a, b, d) { a = d.xcb_; d = d.ycb_; var f = 1 << a, q = 1 << d, k = b.tbx0 >> a, c = b.tby0 >> d, h = b.tbx1 + f - 1 >> a, n = b.tby1 + q - 1 >> d, B = b.resolution.precinctParameters, E = [], t = [], x, S, z, y; for (S = c; S < n; S++) for (x = k; x < h; x++) if (z = { cbx: x, cby: S, tbx0: f * x, tby0: q * S, tbx1: f * (x + 1), tby1: q * (S + 1) }, z.tbx0_ = Math.max(b.tbx0, z.tbx0), z.tby0_ = Math.max(b.tby0, z.tby0), z.tbx1_ = Math.min(b.tbx1, z.tbx1), z.tby1_ = Math.min(b.tby1, z.tby1), y = Math.floor((z.tbx0_ - b.tbx0) / B.precinctWidthInSubband) + Math.floor((z.tby0_ - b.tby0) / B.precinctHeightInSubband) * B.numprecinctswide, z.precinctNumber = y, z.subbandType = b.type, z.Lblock = 3, !(z.tbx1_ <= z.tbx0_ || z.tby1_ <= z.tby0_)) { E.push(z); var p = t[y]; void 0 !== p ? (x < p.cbxMin ? p.cbxMin = x : x > p.cbxMax && (p.cbxMax = x), S < p.cbyMin ? p.cbxMin = S : S > p.cbyMax && (p.cbyMax = S)) : t[y] = p = { cbxMin: x, cbyMin: S, cbxMax: x, cbyMax: S }; z.precinct = p } b.codeblockParameters = { codeblockWidth: a, codeblockHeight: d, numcodeblockwide: h - k + 1, numcodeblockhigh: n - c + 1 }; b.codeblocks = E; b.precincts = t } function N(a, b, d) { var f = []; a = a.subbands; for (var k = 0, w = a.length; k < w; k++) for (var c = a[k].codeblocks, h = 0, n = c.length; h < n; h++) { var B = c[h]; B.precinctNumber === b && f.push(B) } return { layerNumber: d, codeblocks: f } } function u(a) { var b = a.tiles[a.currentTile.index], d = b.codingStyleDefaultParameters.layersCount, f = a.SIZ.Csiz, k = 0; for (a = 0; a < f; a++) k = Math.max(k, b.components[a].codingStyleParameters.decompositionLevelsCount); var w = 0, c = 0, h = 0, n = 0; this.nextPacket = function () { for (; w < d; w++) { for (; c <= k; c++) { for (; h < f; h++) { var a = b.components[h]; if (!(c > a.codingStyleParameters.decompositionLevelsCount)) { for (var a = a.resolutions[c], g = a.precinctParameters.numprecincts; n < g;) return a = N(a, n, w), n++, a; n = 0 } } h = 0 } c = 0 } throw Error("JPX Error: Out of packets"); } } function G(a) { var b = a.tiles[a.currentTile.index], d = b.codingStyleDefaultParameters.layersCount, f = a.SIZ.Csiz, k = 0; for (a = 0; a < f; a++) k = Math.max(k, b.components[a].codingStyleParameters.decompositionLevelsCount); var w = 0, c = 0, h = 0, n = 0; this.nextPacket = function () { for (; w <= k; w++) { for (; c < d; c++) { for (; h < f; h++) { var a = b.components[h]; if (!(w > a.codingStyleParameters.decompositionLevelsCount)) { for (var a = a.resolutions[w], g = a.precinctParameters.numprecincts; n < g;) return a = N(a, n, c), n++, a; n = 0 } } h = 0 } c = 0 } throw Error("JPX Error: Out of packets"); } } function M(a) { var b = a.tiles[a.currentTile.index], d = b.codingStyleDefaultParameters.layersCount, f = a.SIZ.Csiz, k, w, c, h, n = 0; for (c = 0; c < f; c++) n = Math.max(n, b.components[c].codingStyleParameters.decompositionLevelsCount); var B = new Int32Array(n + 1); for (w = 0; w <= n; ++w) { for (c = a = 0; c < f; ++c) { var E = b.components[c].resolutions; w < E.length && (a = Math.max(a, E[w].precinctParameters.numprecincts)) } B[w] = a } h = c = w = k = 0; this.nextPacket = function () { for (; w <= n; w++) { for (; h < B[w]; h++) { for (; c < f; c++) { var a = b.components[c]; if (!(w > a.codingStyleParameters.decompositionLevelsCount || (a = a.resolutions[w], h >= a.precinctParameters.numprecincts))) { for (; k < d;) return a = N(a, h, k), k++, a; k = 0 } } c = 0 } h = 0 } throw Error("JPX Error: Out of packets"); } } function K(a) { var b = a.tiles[a.currentTile.index], d = b.codingStyleDefaultParameters.layersCount, f = a.SIZ.Csiz, k = r(b), w = 0, c = 0, h = 0, n = 0, B = 0; this.nextPacket = function () { for (; B < k.maxNumHigh; B++) { for (; n < k.maxNumWide; n++) { for (; h < f; h++) { for (var a = b.components[h], g = a.codingStyleParameters.decompositionLevelsCount; c <= g; c++) { var x = a.resolutions[c], S = v(n, B, k.components[h].resolutions[c], k, x); if (null !== S) { for (; w < d;) return a = N(x, S, w), w++, a; w = 0 } } c = 0 } h = 0 } n = 0 } throw Error("JPX Error: Out of packets"); } } function J(a) { var b = a.tiles[a.currentTile.index], d = b.codingStyleDefaultParameters.layersCount, f = a.SIZ.Csiz, k = r(b), w = 0, c = 0, h = 0, n = 0, B = 0; this.nextPacket = function () { for (; h < f; ++h) { for (var a = b.components[h], g = k.components[h], x = a.codingStyleParameters.decompositionLevelsCount; B < g.maxNumHigh; B++) { for (; n < g.maxNumWide; n++) { for (; c <= x; c++) { var S = a.resolutions[c], z = v(n, B, g.resolutions[c], g, S); if (null !== z) { for (; w < d;) return a = N(S, z, w), w++, a; w = 0 } } c = 0 } n = 0 } B = 0 } throw Error("JPX Error: Out of packets"); } } function v(a, b, d, f, k) { a *= f.minWidth; b *= f.minHeight; return 0 !== a % d.width || 0 !== b % d.height ? null : a / d.height + b / d.width * k.precinctParameters.numprecinctswide } function r(a) { for (var b = a.components.length, d = Number.MAX_VALUE, f = Number.MAX_VALUE, k = 0, w = 0, c = Array(b), h = 0; h < b; h++) { for (var n = a.components[h], B = n.codingStyleParameters.decompositionLevelsCount, E = Array(B + 1), t = Number.MAX_VALUE, x = Number.MAX_VALUE, S = 0, z = 0, y = 1; 0 <= B; --B) { var p = n.resolutions[B], D = y * p.precinctParameters.precinctWidth, e = y * p.precinctParameters.precinctHeight, t = Math.min(t, D), x = Math.min(x, e), S = Math.max(S, p.precinctParameters.numprecinctswide), z = Math.max(z, p.precinctParameters.numprecinctshigh); E[B] = { width: D, height: e }; y <<= 1 } d = Math.min(d, t); f = Math.min(f, x); k = Math.max(k, S); w = Math.max(w, z); c[h] = { resolutions: E, minWidth: t, minHeight: x, maxNumWide: S, maxNumHigh: z } } return { components: c, minWidth: d, minHeight: f, maxNumWide: k, maxNumHigh: w } } function P(b, k, d, f) { function q(a) { for (; B < a;) { var b = k[d + e]; e++; E ? (T = T << 7 | b, B += 7, E = !1) : (T = T << 8 | b, B += 8); 255 === b && (E = !0) } B -= a; return T >>> B & (1 << a) - 1 } function w(a) { return 255 === k[d + e - 1] && k[d + e] === a ? (e += 1, !0) : 255 === k[d + e] && k[d + e + 1] === a ? (e += 2, !0) : !1 } function n() { if (0 === q(1)) return 1; if (0 === q(1)) return 2; var a = q(2); if (3 > a) return a + 3; a = q(5); if (31 > a) return a + 6; a = q(7); return a + 37 } var e = 0, T, B = 0, E = !1, t = b.COD.sopMarkerUsed, x = b.COD.ephMarkerUsed; for (b = b.tiles[b.currentTile.index].packetsIterator; e < f;) { B = 0; E && (e++, E = !1); t && w(145) && (e += 4); var S = b.nextPacket(); if (q(1)) { for (var z = S.layerNumber, y = [], p, D = 0, v = S.codeblocks.length; D < v; D++) { p = S.codeblocks[D]; var A = p.precinct, l = p.cbx - A.cbxMin, F = p.cby - A.cbyMin, C = !1, r = !1, u; if (void 0 !== p.included) C = !!q(1); else { var A = p.precinct, H, M; void 0 !== A.inclusionTree ? H = A.inclusionTree : (u = A.cbxMax - A.cbxMin + 1, M = A.cbyMax - A.cbyMin + 1, H = new c(u, M, z), M = new h(u, M), A.inclusionTree = H, A.zeroBitPlanesTree = M); if (H.reset(l, F, z)) for (; ;) if (q(1)) { if (u = !H.nextLevel()) { C = r = p.included = !0; break } } else { H.incrementValue(z); break } } if (C) { if (r) { M = A.zeroBitPlanesTree; for (M.reset(l, F) ; ;) if (q(1)) { if (u = !M.nextLevel()) break } else M.incrementValue(); p.zeroBitPlanes = M.value } for (A = n() ; q(1) ;) p.Lblock++; l = a(A); l = q((A < 1 << l ? l - 1 : l) + p.Lblock); y.push({ codeblock: p, codingpasses: A, dataLength: l }) } } B = 0; E && (e++, E = !1); for (x && w(146) ; 0 < y.length;) S = y.shift(), p = S.codeblock, void 0 === p.data && (p.data = []), p.data.push({ data: k, start: d + e, end: d + e + S.dataLength, codingpasses: S.codingpasses }), e += S.dataLength } } return e } var H = { LL: 0, LH: 1, HL: 1, HH: 2 }; e.prototype = { parse: function (a) { if (65359 === b(a, 0)) this.parseCodestream(a, 0, a.length); else for (var k = 0, d = a.length; k < d;) { var f = 8, q = L(a, k), w = L(a, k + 4), k = k + f; 1 === q && (q = 4294967296 * L(a, k) + L(a, k + 4), k += 8, f += 8); 0 === q && (q = d - k + f); if (q < f) throw Error("JPX Error: Invalid box field size"); f = q - f; q = !0; switch (w) { case 1785737832: q = !1; break; case 1668246642: w = a[k]; if (1 === w) switch (w = L(a, k + 3), w) { case 16: case 17: case 18: break; default: Q("Unknown colorspace " + w) } else 2 === w && O("ICC profile not supported"); break; case 1785737827: this.parseCodestream(a, k, k + f); break; case 1783636E3: 218793738 !== L(a, k) && Q("Invalid JP2 signature"); break; case 1783634458: case 1718909296: case 1920099697: case 1919251232: case 1768449138: break; default: var c = String.fromCharCode(w >> 24 & 255, w >> 16 & 255, w >> 8 & 255, w & 255); Q("Unsupported header type " + w + " (" + c + ")") } q && (k += f) } }, parseImageProperties: function (a) { for (var b = a.getByte() ; 0 <= b;) { var d = b, b = a.getByte(); if (65361 === (d << 8 | b)) { a.skip(4); var b = a.getInt32() >>> 0, d = a.getInt32() >>> 0, f = a.getInt32() >>> 0, k = a.getInt32() >>> 0; a.skip(16); a = a.getUint16(); this.width = b - f; this.height = d - k; this.componentsCount = a; this.bitsPerComponent = 8; return } } throw Error("JPX Error: No size marker found in JPX stream"); }, parseCodestream: function (a, c, d) { var f = {}; try { for (var q = !1, w = c; w + 1 < d;) { var h = b(a, w), w = w + 2, e = 0, T, B, E, t, x, S; switch (h) { case 65359: f.mainHeader = !0; break; case 65497: break; case 65361: var e = b(a, w), z = {}; z.Xsiz = L(a, w + 4); z.Ysiz = L(a, w + 8); z.XOsiz = L(a, w + 12); z.YOsiz = L(a, w + 16); z.XTsiz = L(a, w + 20); z.YTsiz = L(a, w + 24); z.XTOsiz = L(a, w + 28); z.YTOsiz = L(a, w + 32); var y = b(a, w + 36); z.Csiz = y; var p = []; T = w + 38; for (var D = 0; D < y; D++) { var v = { precision: (a[T] & 127) + 1, isSigned: !!(a[T] & 128), XRsiz: a[T + 1], YRsiz: a[T + 1] }, F = v, r = z; F.x0 = Math.ceil(r.XOsiz / F.XRsiz); F.x1 = Math.ceil(r.Xsiz / F.XRsiz); F.y0 = Math.ceil(r.YOsiz / F.YRsiz); F.y1 = Math.ceil(r.Ysiz / F.YRsiz); F.width = F.x1 - F.x0; F.height = F.y1 - F.y0; p.push(v) } f.SIZ = z; f.components = p; for (var Y = f, I = p, N = Y.SIZ, O = void 0, R = [], ia = Math.ceil((N.Xsiz - N.XTOsiz) / N.XTsiz), la = Math.ceil((N.Ysiz - N.YTOsiz) / N.YTsiz), pa = 0; pa < la; pa++) for (var Ka = 0; Ka < ia; Ka++) O = {}, O.tx0 = Math.max(N.XTOsiz + Ka * N.XTsiz, N.XOsiz), O.ty0 = Math.max(N.YTOsiz + pa * N.YTsiz, N.YOsiz), O.tx1 = Math.min(N.XTOsiz + (Ka + 1) * N.XTsiz, N.Xsiz), O.ty1 = Math.min(N.YTOsiz + (pa + 1) * N.YTsiz, N.Ysiz), O.width = O.tx1 - O.tx0, O.height = O.ty1 - O.ty0, O.components = [], R.push(O); Y.tiles = R; for (var tb = 0, Xa = N.Csiz; tb < Xa; tb++) for (var ma = I[tb], na = 0, La = R.length; na < La; na++) { var oa = {}, O = R[na]; oa.tcx0 = Math.ceil(O.tx0 / ma.XRsiz); oa.tcy0 = Math.ceil(O.ty0 / ma.YRsiz); oa.tcx1 = Math.ceil(O.tx1 / ma.XRsiz); oa.tcy1 = Math.ceil(O.ty1 / ma.YRsiz); oa.width = oa.tcx1 - oa.tcx0; oa.height = oa.tcy1 - oa.tcy0; O.components[tb] = oa } f.QCC = []; f.COC = []; break; case 65372: var e = b(a, w), za = {}; T = w + 2; B = a[T++]; switch (B & 31) { case 0: t = 8; x = !0; break; case 1: t = 16; x = !1; break; case 2: t = 16; x = !0; break; default: throw Error("JPX Error: Invalid SQcd value " + B); } za.noQuantization = 8 === t; za.scalarExpounded = x; za.guardBits = B >> 5; for (E = []; T < e + w;) { var ja = {}; 8 === t ? (ja.epsilon = a[T++] >> 3, ja.mu = 0) : (ja.epsilon = a[T] >> 3, ja.mu = (a[T] & 7) << 8 | a[T + 1], T += 2); E.push(ja) } za.SPqcds = E; f.mainHeader ? f.QCD = za : (f.currentTile.QCD = za, f.currentTile.QCC = []); break; case 65373: var e = b(a, w), ua = {}; T = w + 2; var ha; 257 > f.SIZ.Csiz ? ha = a[T++] : (ha = b(a, T), T += 2); B = a[T++]; switch (B & 31) { case 0: t = 8; x = !0; break; case 1: t = 16; x = !1; break; case 2: t = 16; x = !0; break; default: throw Error("JPX Error: Invalid SQcd value " + B); } ua.noQuantization = 8 === t; ua.scalarExpounded = x; ua.guardBits = B >> 5; for (E = []; T < e + w;) ja = {}, 8 === t ? (ja.epsilon = a[T++] >> 3, ja.mu = 0) : (ja.epsilon = a[T] >> 3, ja.mu = (a[T] & 7) << 8 | a[T + 1], T += 2), E.push(ja); ua.SPqcds = E; f.mainHeader ? f.QCC[ha] = ua : f.currentTile.QCC[ha] = ua; break; case 65362: var e = b(a, w), aa = {}; T = w + 2; var Ma = a[T++]; aa.entropyCoderWithCustomPrecincts = !!(Ma & 1); aa.sopMarkerUsed = !!(Ma & 2); aa.ephMarkerUsed = !!(Ma & 4); aa.progressionOrder = a[T++]; aa.layersCount = b(a, T); T += 2; aa.multipleComponentTransform = a[T++]; aa.decompositionLevelsCount = a[T++]; aa.xcb = (a[T++] & 15) + 2; aa.ycb = (a[T++] & 15) + 2; var Ga = a[T++]; aa.selectiveArithmeticCodingBypass = !!(Ga & 1); aa.resetContextProbabilities = !!(Ga & 2); aa.terminationOnEachCodingPass = !!(Ga & 4); aa.verticalyStripe = !!(Ga & 8); aa.predictableTermination = !!(Ga & 16); aa.segmentationSymbolUsed = !!(Ga & 32); aa.reversibleTransformation = a[T++]; if (aa.entropyCoderWithCustomPrecincts) { for (var ub = []; T < e + w;) { var Ya = a[T++]; ub.push({ PPx: Ya & 15, PPy: Ya >> 4 }) } aa.precinctsSizes = ub } var Aa = []; aa.selectiveArithmeticCodingBypass && Aa.push("selectiveArithmeticCodingBypass"); aa.resetContextProbabilities && Aa.push("resetContextProbabilities"); aa.terminationOnEachCodingPass && Aa.push("terminationOnEachCodingPass"); aa.verticalyStripe && Aa.push("verticalyStripe"); aa.predictableTermination && Aa.push("predictableTermination"); if (0 < Aa.length) throw q = !0, Error("JPX Error: Unsupported COD options (" + Aa.join(", ") + ")"); f.mainHeader ? f.COD = aa : (f.currentTile.COD = aa, f.currentTile.COC = []); break; case 65424: e = b(a, w); S = {}; S.index = b(a, w + 2); S.length = L(a, w + 4); S.dataEnd = S.length + w - 2; S.partIndex = a[w + 8]; S.partsCount = a[w + 9]; f.mainHeader = !1; 0 === S.partIndex && (S.COD = f.COD, S.COC = f.COC.slice(0), S.QCD = f.QCD, S.QCC = f.QCC.slice(0)); f.currentTile = S; break; case 65427: S = f.currentTile; if (0 === S.partIndex) { for (var ca = f, Na = ca.SIZ.Csiz, Za = ca.tiles[S.index], qa = 0; qa < Na; qa++) { var $a = Za.components[qa]; $a.quantizationParameters = void 0 !== ca.currentTile.QCC[qa] ? ca.currentTile.QCC[qa] : ca.currentTile.QCD; $a.codingStyleParameters = void 0 !== ca.currentTile.COC[qa] ? ca.currentTile.COC[qa] : ca.currentTile.COD } Za.codingStyleDefaultParameters = ca.currentTile.COD; for (var ga = f, Da = ga.tiles[ga.currentTile.index], Jb = ga.SIZ.Csiz, mb = 0; mb < Jb; mb++) { for (var ba = Da.components[mb], nb = ba.codingStyleParameters.decompositionLevelsCount, dc = [], ob = [], ab = 0; ab <= nb; ab++) { var Ha, vb = ab, bb = ba.codingStyleParameters, Ba = {}; bb.entropyCoderWithCustomPrecincts ? (Ba.PPx = bb.precinctsSizes[vb].PPx, Ba.PPy = bb.precinctsSizes[vb].PPy) : (Ba.PPx = 15, Ba.PPy = 15); Ba.xcb_ = 0 < vb ? Math.min(bb.xcb, Ba.PPx - 1) : Math.min(bb.xcb, Ba.PPx); Ba.ycb_ = 0 < vb ? Math.min(bb.ycb, Ba.PPy - 1) : Math.min(bb.ycb, Ba.PPy); Ha = Ba; var ea = {}, Oa = 1 << nb - ab; ea.trx0 = Math.ceil(ba.tcx0 / Oa); ea.try0 = Math.ceil(ba.tcy0 / Oa); ea.trx1 = Math.ceil(ba.tcx1 / Oa); ea.try1 = Math.ceil(ba.tcy1 / Oa); ea.resLevel = ab; var Kb = 1 << Ha.PPx, Lb = 1 << Ha.PPy, ec = 0 === ea.resLevel, fc = ea.trx1 > ea.trx0 ? Math.ceil(ea.trx1 / Kb) - Math.floor(ea.trx0 / Kb) : 0, gc = ea.try1 > ea.try0 ? Math.ceil(ea.try1 / Lb) - Math.floor(ea.try0 / Lb) : 0; ea.precinctParameters = { precinctWidth: Kb, precinctHeight: Lb, numprecinctswide: fc, numprecinctshigh: gc, numprecincts: fc * gc, precinctWidthInSubband: 1 << Ha.PPx + (ec ? 0 : -1), precinctHeightInSubband: 1 << Ha.PPy + (ec ? 0 : -1) }; dc.push(ea); var Z; if (0 === ab) Z = { type: "LL" }, Z.tbx0 = Math.ceil(ba.tcx0 / Oa), Z.tby0 = Math.ceil(ba.tcy0 / Oa), Z.tbx1 = Math.ceil(ba.tcx1 / Oa), Z.tby1 = Math.ceil(ba.tcy1 / Oa), Z.resolution = ea, l(ga, Z, Ha), ob.push(Z), ea.subbands = [Z]; else { var va = 1 << nb - ab + 1, wb = []; Z = { type: "HL" }; Z.tbx0 = Math.ceil(ba.tcx0 / va - .5); Z.tby0 = Math.ceil(ba.tcy0 / va); Z.tbx1 = Math.ceil(ba.tcx1 / va - .5); Z.tby1 = Math.ceil(ba.tcy1 / va); Z.resolution = ea; l(ga, Z, Ha); ob.push(Z); wb.push(Z); Z = { type: "LH" }; Z.tbx0 = Math.ceil(ba.tcx0 / va); Z.tby0 = Math.ceil(ba.tcy0 / va - .5); Z.tbx1 = Math.ceil(ba.tcx1 / va); Z.tby1 = Math.ceil(ba.tcy1 / va - .5); Z.resolution = ea; l(ga, Z, Ha); ob.push(Z); wb.push(Z); Z = { type: "HH" }; Z.tbx0 = Math.ceil(ba.tcx0 / va - .5); Z.tby0 = Math.ceil(ba.tcy0 / va - .5); Z.tbx1 = Math.ceil(ba.tcx1 / va - .5); Z.tby1 = Math.ceil(ba.tcy1 / va - .5); Z.resolution = ea; l(ga, Z, Ha); ob.push(Z); wb.push(Z); ea.subbands = wb } } ba.resolutions = dc; ba.subbands = ob } var hc = Da.codingStyleDefaultParameters.progressionOrder; switch (hc) { case 0: Da.packetsIterator = new u(ga); break; case 1: Da.packetsIterator = new G(ga); break; case 2: Da.packetsIterator = new M(ga); break; case 3: Da.packetsIterator = new K(ga); break; case 4: Da.packetsIterator = new J(ga); break; default: throw Error("JPX Error: Unsupported progression order " + hc); } } e = S.dataEnd - w; P(f, a, w, e); break; case 65365: case 65367: case 65368: case 65380: e = b(a, w); break; case 65363: throw Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented"); default: throw Error("JPX Error: Unknown codestream code: " + h.toString(16)); } w += e } } catch (xa) { if (q || this.failOnCorruptedImage) throw xa; Q("Trying to recover from " + xa.message) } for (var ic = f.components, Pa = f.SIZ.Csiz, jc = [], Mb = 0, zc = f.tiles.length; Mb < zc; Mb++) { var Nb = f.tiles[Mb], cb = [], wa; for (wa = 0; wa < Pa; wa++) { for (var Ac = cb, Ob = wa, db = Nb.components[wa], Pb = db.codingStyleParameters, Qb = db.quantizationParameters, Bc = Pb.decompositionLevelsCount, xb = Qb.SPqcds, pb = Qb.scalarExpounded, Cc = Qb.guardBits, Dc = Pb.segmentationSymbolUsed, Ec = f.components[wa].precision, Rb = Pb.reversibleTransformation, Fc = Rb ? new A : new n, kc = [], Sb = 0, qb = 0; qb <= Bc; qb++) { for (var fb = db.resolutions[qb], yb = fb.trx1 - fb.trx0, lc = fb.try1 - fb.try0, mc = new Float32Array(yb * lc), Tb = 0, Gc = fb.subbands.length; Tb < Gc; Tb++) { var Ub, zb; pb ? (Ub = xb[Sb].mu, zb = xb[Sb].epsilon, Sb++) : (Ub = xb[0].mu, zb = xb[0].epsilon + (0 < qb ? 1 - qb : 0)); for (var nc = fb.subbands[Tb], Hc = H[nc.type], Ic = mc, oc = yb, Qa = nc, Jc = Rb ? 1 : Math.pow(2, Ec + Hc - zb) * (1 + Ub / 2048), Vb = Cc + zb - 1, pc = Rb, Kc = Dc, Lc = Qa.tbx0, Mc = Qa.tby0, Ab = Qa.tbx1 - Qa.tbx0, qc = Qa.codeblocks, Nc = "H" === Qa.type.charAt(0) ? 1 : 0, Oc = "H" === Qa.type.charAt(1) ? oc : 0, Wb = 0, Pc = qc.length; Wb < Pc; ++Wb) { var Ea = qc[Wb], Bb = Ea.tbx1_ - Ea.tbx0_, Xb = Ea.tby1_ - Ea.tby0_; if (0 !== Bb && 0 !== Xb && void 0 !== Ea.data) { var Ia, Cb; Ia = new C(Bb, Xb, Ea.subbandType, Ea.zeroBitPlanes, Vb); Cb = 2; var Db = Ea.data, Eb = 0, Yb = 0, ra, Fb, Ra; ra = 0; for (Fb = Db.length; ra < Fb; ra++) Ra = Db[ra], Eb += Ra.end - Ra.start, Yb += Ra.codingpasses; var rc = new Uint8Array(Eb), Sa = 0; ra = 0; for (Fb = Db.length; ra < Fb; ra++) { Ra = Db[ra]; var sc = Ra.data.subarray(Ra.start, Ra.end); rc.set(sc, Sa); Sa += sc.length } var Qc = new k(rc, 0, Eb); Ia.setDecoder(Qc); for (ra = 0; ra < Yb; ra++) { switch (Cb) { case 0: Ia.runSignificancePropogationPass(); break; case 1: Ia.runMagnitudeRefinementPass(); break; case 2: Ia.runCleanupPass(), Kc && Ia.checkSegmentationSymbol() } Cb = (Cb + 1) % 3 } var gb = Ea.tbx0_ - Lc + (Ea.tby0_ - Mc) * Ab, Rc = Ia.coefficentsSign, Sc = Ia.coefficentsMagnitude, Tc = Ia.bitsDecoded, Uc = pc ? 0 : .5, Zb, Ta, $b, Sa = 0, Vc = "LL" !== Qa.type; for (ra = 0; ra < Xb; ra++) { var Wc = 2 * (gb / Ab | 0) * (oc - Ab) + Nc + Oc; for (Zb = 0; Zb < Bb; Zb++) Ta = Sc[Sa], 0 !== Ta && (Ta = (Ta + Uc) * Jc, 0 !== Rc[Sa] && (Ta = -Ta), $b = Tc[Sa], Ic[Vc ? Wc + (gb << 1) : gb] = pc && $b >= Vb ? Ta : Ta * (1 << Vb - $b)), gb++, Sa++; gb += Ab - Bb } } } } kc.push({ width: yb, height: lc, items: mc }) } var ac = Fc.calculate(kc, db.tcx0, db.tcy0); Ac[Ob] = { left: db.tcx0, top: db.tcy0, width: ac.width, height: ac.height, items: ac.items } } var rb = cb[0], Ja = new Uint8Array(rb.items.length * Pa), Xc = { left: rb.left, top: rb.top, width: rb.width, height: rb.height, items: Ja }, sa, hb, Ca, Gb, bc, ka = 0, fa, ib, jb, kb, lb, Ua, Fa, Va, Hb, Ib; if (Nb.codingStyleDefaultParameters.multipleComponentTransform) { var tc = 4 === Pa, cc = cb[0].items, uc = cb[1].items, vc = cb[2].items, Yc = tc ? cb[3].items : null; sa = ic[0].precision - 8; hb = (128 << sa) + .5; Ca = 255 * (1 << sa); bc = .5 * Ca; Gb = -bc; var Zc = Nb.components[0], wc = Pa - 3; ib = cc.length; if (Zc.codingStyleParameters.reversibleTransformation) for (fa = 0; fa < ib; fa++, ka += wc) jb = cc[fa] + hb, kb = uc[fa], lb = vc[fa], Fa = jb - (lb + kb >> 2), Ua = Fa + lb, Va = Fa + kb, Ja[ka++] = 0 >= Ua ? 0 : Ua >= Ca ? 255 : Ua >> sa, Ja[ka++] = 0 >= Fa ? 0 : Fa >= Ca ? 255 : Fa >> sa, Ja[ka++] = 0 >= Va ? 0 : Va >= Ca ? 255 : Va >> sa; else for (fa = 0; fa < ib; fa++, ka += wc) jb = cc[fa] + hb, kb = uc[fa], lb = vc[fa], Ua = jb + 1.402 * lb, Fa = jb - .34413 * kb - .71414 * lb, Va = jb + 1.772 * kb, Ja[ka++] = 0 >= Ua ? 0 : Ua >= Ca ? 255 : Ua >> sa, Ja[ka++] = 0 >= Fa ? 0 : Fa >= Ca ? 255 : Fa >> sa, Ja[ka++] = 0 >= Va ? 0 : Va >= Ca ? 255 : Va >> sa; if (tc) for (fa = 0, ka = 3; fa < ib; fa++, ka += 4) Hb = Yc[fa], Ja[ka] = Hb <= Gb ? 0 : Hb >= bc ? 255 : Hb + hb >> sa } else for (wa = 0; wa < Pa; wa++) { var xc = cb[wa].items; sa = ic[wa].precision - 8; hb = (128 << sa) + .5; Ca = 127.5 * (1 << sa); Gb = -Ca; ka = wa; fa = 0; for (ib = xc.length; fa < ib; fa++) Ib = xc[fa], Ja[ka] = Ib <= Gb ? 0 : Ib >= Ca ? 255 : Ib + hb >> sa, ka += Pa } jc.push(Xc) } this.tiles = jc; this.width = f.SIZ.Xsiz - f.SIZ.XOsiz; this.height = f.SIZ.Ysiz - f.SIZ.YOsiz; this.componentsCount = f.SIZ.Csiz } }; var h = function () { function b(k, d) { var f = a(Math.max(k, d)) + 1; this.levels = []; for (var q = 0; q < f; q++) this.levels.push({ width: k, height: d, items: [] }), k = Math.ceil(k / 2), d = Math.ceil(d / 2) } b.prototype = { reset: function (a, b) { for (var f = 0, k = 0, w; f < this.levels.length;) { w = this.levels[f]; var c = a + b * w.width; if (void 0 !== w.items[c]) { k = w.items[c]; break } w.index = c; a >>= 1; b >>= 1; f++ } f--; w = this.levels[f]; w.items[w.index] = k; this.currentLevel = f; delete this.value }, incrementValue: function () { var a = this.levels[this.currentLevel]; a.items[a.index]++ }, nextLevel: function () { var a = this.currentLevel, b = this.levels[a], f = b.items[b.index]; a--; if (0 > a) return this.value = f, !1; this.currentLevel = a; b = this.levels[a]; b.items[b.index] = f; return !0 } }; return b }(), c = function () { function b(k, d, f) { var q = a(Math.max(k, d)) + 1; this.levels = []; for (var w = 0; w < q; w++) { for (var c = new Uint8Array(k * d), g = 0, h = c.length; g < h; g++) c[g] = f; this.levels.push({ width: k, height: d, items: c }); k = Math.ceil(k / 2); d = Math.ceil(d / 2) } } b.prototype = { reset: function (a, b, f) { for (var k = 0; k < this.levels.length;) { var w = this.levels[k], c = a + b * w.width; w.index = c; w = w.items[c]; if (255 === w) break; if (w > f) return this.currentLevel = k, this.propagateValues(), !1; a >>= 1; b >>= 1; k++ } this.currentLevel = k - 1; return !0 }, incrementValue: function (a) { var b = this.levels[this.currentLevel]; b.items[b.index] = a + 1; this.propagateValues() }, propagateValues: function () { for (var a = this.currentLevel, b = this.levels[a], f = b.items[b.index]; 0 <= --a;) b = this.levels[a], b.items[b.index] = f }, nextLevel: function () { var a = this.currentLevel, b = this.levels[a], f = b.items[b.index]; b.items[b.index] = 255; a--; if (0 > a) return !1; this.currentLevel = a; b = this.levels[a]; b.items[b.index] = f; return !0 } }; return b }(), C = function () { function a(k, w, c, g, h) { this.width = k; this.height = w; this.contextLabelTable = "HH" === c ? f : "HL" === c ? d : b; k *= w; this.neighborsSignificance = new Uint8Array(k); this.coefficentsSign = new Uint8Array(k); this.coefficentsMagnitude = 14 < h ? new Uint32Array(k) : 6 < h ? new Uint16Array(k) : new Uint8Array(k); this.processingFlags = new Uint8Array(k); h = new Uint8Array(k); if (0 !== g) for (w = 0; w < k; w++) h[w] = g; this.bitsDecoded = h; this.reset() } var b = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]), d = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]), f = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]); a.prototype = { setDecoder: function (a) { this.decoder = a }, reset: function () { this.contexts = new Int8Array(19); this.contexts[0] = 8; this.contexts[17] = 92; this.contexts[18] = 6 }, setNeighborsSignificance: function (a, b, f) { var d = this.neighborsSignificance, k = this.width, c = this.height, g = 0 < b; b = b + 1 < k; var t; 0 < a && (t = f - k, g && (d[t - 1] += 16), b && (d[t + 1] += 16), d[t] += 4); a + 1 < c && (t = f + k, g && (d[t - 1] += 16), b && (d[t + 1] += 16), d[t] += 4); g && (d[f - 1] += 1); b && (d[f + 1] += 1); d[f] |= 128 }, runSignificancePropogationPass: function () { for (var a = this.decoder, b = this.width, f = this.height, d = this.coefficentsMagnitude, k = this.coefficentsSign, c = this.neighborsSignificance, g = this.processingFlags, t = this.contexts, m = this.contextLabelTable, h = this.bitsDecoded, n = 0; n < f; n += 4) for (var y = 0; y < b; y++) for (var p = n * b + y, D = 0; 4 > D; D++, p += b) { var e = n + D; if (e >= f) break; g[p] &= -2; if (!d[p] && c[p]) { if (a.readBit(t, m[c[p]])) { var A = this.decodeSignBit(e, y, p); k[p] = A; d[p] = 1; this.setNeighborsSignificance(e, y, p); g[p] |= 2 } h[p]++; g[p] |= 1 } } }, decodeSignBit: function (a, b, f) { var d = this.width, k = this.height, c = this.coefficentsMagnitude, g = this.coefficentsSign, t; t = 0 < b && 0 !== c[f - 1]; b + 1 < d && 0 !== c[f + 1] ? (b = g[f + 1], t ? (t = g[f - 1], b = 1 - b - t) : b = 1 - b - b) : t ? (t = g[f - 1], b = 1 - t - t) : b = 0; var m = 3 * b; t = 0 < a && 0 !== c[f - d]; a + 1 < k && 0 !== c[f + d] ? (b = g[f + d], t ? (t = g[f - d], b = 1 - b - t + m) : b = 1 - b - b + m) : t ? (t = g[f - d], b = 1 - t - t + m) : b = m; return a = 0 <= b ? this.decoder.readBit(this.contexts, 9 + b) : this.decoder.readBit(this.contexts, 9 - b) ^ 1 }, runMagnitudeRefinementPass: function () { for (var a = this.decoder, b = this.width, f = this.coefficentsMagnitude, d = this.neighborsSignificance, k = this.contexts, c = this.bitsDecoded, g = this.processingFlags, t = b * this.height, m = 4 * b, h = 0, n; h < t; h = n) { n = Math.min(t, h + m); for (var y = 0; y < b; y++) for (var p = h + y; p < n; p += b) if (f[p] && 0 === (g[p] & 1)) { var D = 16; 0 !== (g[p] & 2) && (g[p] ^= 2, D = 0 === (d[p] & 127) ? 15 : 14); D = a.readBit(k, D); f[p] = f[p] << 1 | D; c[p]++; g[p] |= 1 } } }, runCleanupPass: function () { for (var a = this.decoder, b = this.width, f = this.height, d = this.neighborsSignificance, k = this.coefficentsMagnitude, c = this.coefficentsSign, g = this.contexts, t = this.contextLabelTable, m = this.bitsDecoded, h = this.processingFlags, n = 2 * b, y = 3 * b, p, D = 0; D < f; D = p) { p = Math.min(D + 4, f); for (var e = D * b, A = D + 3 < f, v = 0; v < b; v++) { var l = e + v, F = 0, C = l, r = D, u; if (A && 0 === h[l] && 0 === h[l + b] && 0 === h[l + n] && 0 === h[l + y] && 0 === d[l] && 0 === d[l + b] && 0 === d[l + n] && 0 === d[l + y]) { if (!a.readBit(g, 18)) { m[l]++; m[l + b]++; m[l + n]++; m[l + y]++; continue } F = a.readBit(g, 17) << 1 | a.readBit(g, 17); 0 !== F && (r = D + F, C += F * b); u = this.decodeSignBit(r, v, C); c[C] = u; k[C] = 1; this.setNeighborsSignificance(r, v, C); h[C] |= 2; C = l; for (l = D; l <= r; l++, C += b) m[C]++; F++ } for (r = D + F; r < p; r++, C += b) k[C] || 0 !== (h[C] & 1) || (1 === a.readBit(g, t[d[C]]) && (u = this.decodeSignBit(r, v, C), c[C] = u, k[C] = 1, this.setNeighborsSignificance(r, v, C), h[C] |= 2), m[C]++) } } }, checkSegmentationSymbol: function () { var a = this.decoder, b = this.contexts; if (10 !== (a.readBit(b, 17) << 3 | a.readBit(b, 17) << 2 | a.readBit(b, 17) << 1 | a.readBit(b, 17))) throw Error("JPX Error: Invalid segmentation symbol"); } }; return a }(), F = function () { function a() { } a.prototype.calculate = function (a, b, f) { for (var k = a[0], c = 1, g = a.length; c < g; c++) k = this.iterate(k, a[c], b, f); return k }; a.prototype.extend = function (a, b, f) { var k = b - 1, c = b + 1, g = b + f - 2; b += f; a[k--] = a[c++]; a[b++] = a[g--]; a[k--] = a[c++]; a[b++] = a[g--]; a[k--] = a[c++]; a[b++] = a[g--]; a[k] = a[c]; a[b] = a[g] }; a.prototype.iterate = function (a, b, f, k) { var c = a.width, g = a.height, h = a.items, n = b.width, B = b.height; b = b.items; var E, t, x, e; for (E = x = 0; E < g; E++) for (e = 2 * E * n, t = 0; t < c; t++, x++, e += 2) b[e] = h[x]; a.items = null; a = new Float32Array(n + 8); if (1 === n) { if (0 !== (f & 1)) for (x = e = 0; e < B; e++, x += n) b[x] *= .5 } else for (x = e = 0; e < B; e++, x += n) a.set(b.subarray(x, x + n), 4), this.extend(a, 4, n), this.filter(a, 4, n), b.set(a.subarray(4, 4 + n), x); f = 16; c = []; for (E = 0; E < f; E++) c.push(new Float32Array(B + 8)); E = 0; a = 4 + B; if (1 === B) { if (0 !== (k & 1)) for (k = 0; k < n; k++) b[k] *= .5 } else for (k = 0; k < n; k++) { if (0 === E) { f = Math.min(n - k, f); x = k; for (e = 4; e < a; x += n, e++) for (g = 0; g < f; g++) c[g][e] = b[x + g]; E = f } E--; x = c[E]; this.extend(x, 4, B); this.filter(x, 4, B); if (0 === E) for (x = k - f + 1, e = 4; e < a; x += n, e++) for (g = 0; g < f; g++) b[x + g] = c[g][e] } return { width: n, height: B, items: b } }; return a }(), n = function () { function a() { F.call(this) } a.prototype = Object.create(F.prototype); a.prototype.filter = function (a, b, f) { f >>= 1; b |= 0; var k, c, g, h; k = b - 3; for (c = f + 4; c--; k += 2) a[k] *= .8128930661159609; k = b - 2; g = .443506852043971 * a[k - 1]; for (c = f + 3; c--; k += 2) if (h = .443506852043971 * a[k + 1], a[k] = 1.230174104914001 * a[k] - g - h, c--) k += 2, g = .443506852043971 * a[k + 1], a[k] = 1.230174104914001 * a[k] - g - h; else break; k = b - 1; g = .882911075530934 * a[k - 1]; for (c = f + 2; c--; k += 2) if (h = .882911075530934 * a[k + 1], a[k] -= g + h, c--) k += 2, g = .882911075530934 * a[k + 1], a[k] -= g + h; else break; k = b; g = -.052980118572961 * a[k - 1]; for (c = f + 1; c--; k += 2) if (h = -.052980118572961 * a[k + 1], a[k] -= g + h, c--) k += 2, g = -.052980118572961 * a[k + 1], a[k] -= g + h; else break; if (0 !== f) for (k = b + 1, g = -1.586134342059924 * a[k - 1], c = f; c--; k += 2) if (h = -1.586134342059924 * a[k + 1], a[k] -= g + h, c--) k += 2, g = -1.586134342059924 * a[k + 1], a[k] -= g + h; else break }; return a }(), A = function () { function a() { F.call(this) } a.prototype = Object.create(F.prototype); a.prototype.filter = function (a, b, f) { f >>= 1; b |= 0; var k, c; k = b; for (c = f + 1; c--; k += 2) a[k] -= a[k - 1] + a[k + 1] + 2 >> 2; k = b + 1; for (c = f; c--; k += 2) a[k] += a[k - 1] + a[k + 1] >> 1 }; return a }(); return e }(); e.JpxImage = l }); (function (e, l) { l(e.pdfjsCoreMetrics = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.getLookupTableFactory, O = R(function (a) { a.Courier = 600; a["Courier-Bold"] = 600; a["Courier-BoldOblique"] = 600; a["Courier-Oblique"] = 600; a.Helvetica = R(function (a) { a.space = 278; a.exclam = 278; a.quotedbl = 355; a.numbersign = 556; a.dollar = 556; a.percent = 889; a.ampersand = 667; a.quoteright = 222; a.parenleft = 333; a.parenright = 333; a.asterisk = 389; a.plus = 584; a.comma = 278; a.hyphen = 333; a.period = 278; a.slash = 278; a.zero = 556; a.one = 556; a.two = 556; a.three = 556; a.four = 556; a.five = 556; a.six = 556; a.seven = 556; a.eight = 556; a.nine = 556; a.colon = 278; a.semicolon = 278; a.less = 584; a.equal = 584; a.greater = 584; a.question = 556; a.at = 1015; a.A = 667; a.B = 667; a.C = 722; a.D = 722; a.E = 667; a.F = 611; a.G = 778; a.H = 722; a.I = 278; a.J = 500; a.K = 667; a.L = 556; a.M = 833; a.N = 722; a.O = 778; a.P = 667; a.Q = 778; a.R = 722; a.S = 667; a.T = 611; a.U = 722; a.V = 667; a.W = 944; a.X = 667; a.Y = 667; a.Z = 611; a.bracketleft = 278; a.backslash = 278; a.bracketright = 278; a.asciicircum = 469; a.underscore = 556; a.quoteleft = 222; a.a = 556; a.b = 556; a.c = 500; a.d = 556; a.e = 556; a.f = 278; a.g = 556; a.h = 556; a.i = 222; a.j = 222; a.k = 500; a.l = 222; a.m = 833; a.n = 556; a.o = 556; a.p = 556; a.q = 556; a.r = 333; a.s = 500; a.t = 278; a.u = 556; a.v = 500; a.w = 722; a.x = 500; a.y = 500; a.z = 500; a.braceleft = 334; a.bar = 260; a.braceright = 334; a.asciitilde = 584; a.exclamdown = 333; a.cent = 556; a.sterling = 556; a.fraction = 167; a.yen = 556; a.florin = 556; a.section = 556; a.currency = 556; a.quotesingle = 191; a.quotedblleft = 333; a.guillemotleft = 556; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 500; a.fl = 500; a.endash = 556; a.dagger = 556; a.daggerdbl = 556; a.periodcentered = 278; a.paragraph = 537; a.bullet = 350; a.quotesinglbase = 222; a.quotedblbase = 333; a.quotedblright = 333; a.guillemotright = 556; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 611; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 1E3; a.ordfeminine = 370; a.Lslash = 556; a.Oslash = 778; a.OE = 1E3; a.ordmasculine = 365; a.ae = 889; a.dotlessi = 278; a.lslash = 222; a.oslash = 611; a.oe = 944; a.germandbls = 611; a.Idieresis = 278; a.eacute = 556; a.abreve = 556; a.uhungarumlaut = 556; a.ecaron = 556; a.Ydieresis = 667; a.divide = 584; a.Yacute = 667; a.Acircumflex = 667; a.aacute = 556; a.Ucircumflex = 722; a.yacute = 500; a.scommaaccent = 500; a.ecircumflex = 556; a.Uring = 722; a.Udieresis = 722; a.aogonek = 556; a.Uacute = 722; a.uogonek = 556; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 737; a.Emacron = 667; a.ccaron = 500; a.aring = 556; a.Ncommaaccent = 722; a.lacute = 222; a.agrave = 556; a.Tcommaaccent = 611; a.Cacute = 722; a.atilde = 556; a.Edotaccent = 667; a.scaron = 500; a.scedilla = 500; a.iacute = 278; a.lozenge = 471; a.Rcaron = 722; a.Gcommaaccent = 778; a.ucircumflex = 556; a.acircumflex = 556; a.Amacron = 667; a.rcaron = 333; a.ccedilla = 500; a.Zdotaccent = 611; a.Thorn = 667; a.Omacron = 778; a.Racute = 722; a.Sacute = 667; a.dcaron = 643; a.Umacron = 722; a.uring = 556; a.threesuperior = 333; a.Ograve = 778; a.Agrave = 667; a.Abreve = 667; a.multiply = 584; a.uacute = 556; a.Tcaron = 611; a.partialdiff = 476; a.ydieresis = 500; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 556; a.edieresis = 556; a.cacute = 500; a.nacute = 556; a.umacron = 556; a.Ncaron = 722; a.Iacute = 278; a.plusminus = 584; a.brokenbar = 260; a.registered = 737; a.Gbreve = 778; a.Idotaccent = 278; a.summation = 600; a.Egrave = 667; a.racute = 333; a.omacron = 556; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 722; a.lcommaaccent = 222; a.tcaron = 317; a.eogonek = 556; a.Uogonek = 722; a.Aacute = 667; a.Adieresis = 667; a.egrave = 556; a.zacute = 500; a.iogonek = 222; a.Oacute = 778; a.oacute = 556; a.amacron = 556; a.sacute = 500; a.idieresis = 278; a.Ocircumflex = 778; a.Ugrave = 722; a.Delta = 612; a.thorn = 556; a.twosuperior = 333; a.Odieresis = 778; a.mu = 556; a.igrave = 278; a.ohungarumlaut = 556; a.Eogonek = 667; a.dcroat = 556; a.threequarters = 834; a.Scedilla = 667; a.lcaron = 299; a.Kcommaaccent = 667; a.Lacute = 556; a.trademark = 1E3; a.edotaccent = 556; a.Igrave = 278; a.Imacron = 278; a.Lcaron = 556; a.onehalf = 834; a.lessequal = 549; a.ocircumflex = 556; a.ntilde = 556; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 556; a.gbreve = 556; a.onequarter = 834; a.Scaron = 667; a.Scommaaccent = 667; a.Ohungarumlaut = 778; a.degree = 400; a.ograve = 556; a.Ccaron = 722; a.ugrave = 556; a.radical = 453; a.Dcaron = 722; a.rcommaaccent = 333; a.Ntilde = 722; a.otilde = 556; a.Rcommaaccent = 722; a.Lcommaaccent = 556; a.Atilde = 667; a.Aogonek = 667; a.Aring = 667; a.Otilde = 778; a.zdotaccent = 500; a.Ecaron = 667; a.Iogonek = 278; a.kcommaaccent = 500; a.minus = 584; a.Icircumflex = 278; a.ncaron = 556; a.tcommaaccent = 278; a.logicalnot = 584; a.odieresis = 556; a.udieresis = 556; a.notequal = 549; a.gcommaaccent = 556; a.eth = 556; a.zcaron = 500; a.ncommaaccent = 556; a.onesuperior = 333; a.imacron = 278; a.Euro = 556 }); a["Helvetica-Bold"] = R(function (a) { a.space = 278; a.exclam = 333; a.quotedbl = 474; a.numbersign = 556; a.dollar = 556; a.percent = 889; a.ampersand = 722; a.quoteright = 278; a.parenleft = 333; a.parenright = 333; a.asterisk = 389; a.plus = 584; a.comma = 278; a.hyphen = 333; a.period = 278; a.slash = 278; a.zero = 556; a.one = 556; a.two = 556; a.three = 556; a.four = 556; a.five = 556; a.six = 556; a.seven = 556; a.eight = 556; a.nine = 556; a.colon = 333; a.semicolon = 333; a.less = 584; a.equal = 584; a.greater = 584; a.question = 611; a.at = 975; a.A = 722; a.B = 722; a.C = 722; a.D = 722; a.E = 667; a.F = 611; a.G = 778; a.H = 722; a.I = 278; a.J = 556; a.K = 722; a.L = 611; a.M = 833; a.N = 722; a.O = 778; a.P = 667; a.Q = 778; a.R = 722; a.S = 667; a.T = 611; a.U = 722; a.V = 667; a.W = 944; a.X = 667; a.Y = 667; a.Z = 611; a.bracketleft = 333; a.backslash = 278; a.bracketright = 333; a.asciicircum = 584; a.underscore = 556; a.quoteleft = 278; a.a = 556; a.b = 611; a.c = 556; a.d = 611; a.e = 556; a.f = 333; a.g = 611; a.h = 611; a.i = 278; a.j = 278; a.k = 556; a.l = 278; a.m = 889; a.n = 611; a.o = 611; a.p = 611; a.q = 611; a.r = 389; a.s = 556; a.t = 333; a.u = 611; a.v = 556; a.w = 778; a.x = 556; a.y = 556; a.z = 500; a.braceleft = 389; a.bar = 280; a.braceright = 389; a.asciitilde = 584; a.exclamdown = 333; a.cent = 556; a.sterling = 556; a.fraction = 167; a.yen = 556; a.florin = 556; a.section = 556; a.currency = 556; a.quotesingle = 238; a.quotedblleft = 500; a.guillemotleft = 556; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 611; a.fl = 611; a.endash = 556; a.dagger = 556; a.daggerdbl = 556; a.periodcentered = 278; a.paragraph = 556; a.bullet = 350; a.quotesinglbase = 278; a.quotedblbase = 500; a.quotedblright = 500; a.guillemotright = 556; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 611; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 1E3; a.ordfeminine = 370; a.Lslash = 611; a.Oslash = 778; a.OE = 1E3; a.ordmasculine = 365; a.ae = 889; a.dotlessi = 278; a.lslash = 278; a.oslash = 611; a.oe = 944; a.germandbls = 611; a.Idieresis = 278; a.eacute = 556; a.abreve = 556; a.uhungarumlaut = 611; a.ecaron = 556; a.Ydieresis = 667; a.divide = 584; a.Yacute = 667; a.Acircumflex = 722; a.aacute = 556; a.Ucircumflex = 722; a.yacute = 556; a.scommaaccent = 556; a.ecircumflex = 556; a.Uring = 722; a.Udieresis = 722; a.aogonek = 556; a.Uacute = 722; a.uogonek = 611; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 737; a.Emacron = 667; a.ccaron = 556; a.aring = 556; a.Ncommaaccent = 722; a.lacute = 278; a.agrave = 556; a.Tcommaaccent = 611; a.Cacute = 722; a.atilde = 556; a.Edotaccent = 667; a.scaron = 556; a.scedilla = 556; a.iacute = 278; a.lozenge = 494; a.Rcaron = 722; a.Gcommaaccent = 778; a.ucircumflex = 611; a.acircumflex = 556; a.Amacron = 722; a.rcaron = 389; a.ccedilla = 556; a.Zdotaccent = 611; a.Thorn = 667; a.Omacron = 778; a.Racute = 722; a.Sacute = 667; a.dcaron = 743; a.Umacron = 722; a.uring = 611; a.threesuperior = 333; a.Ograve = 778; a.Agrave = 722; a.Abreve = 722; a.multiply = 584; a.uacute = 611; a.Tcaron = 611; a.partialdiff = 494; a.ydieresis = 556; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 556; a.edieresis = 556; a.cacute = 556; a.nacute = 611; a.umacron = 611; a.Ncaron = 722; a.Iacute = 278; a.plusminus = 584; a.brokenbar = 280; a.registered = 737; a.Gbreve = 778; a.Idotaccent = 278; a.summation = 600; a.Egrave = 667; a.racute = 389; a.omacron = 611; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 722; a.lcommaaccent = 278; a.tcaron = 389; a.eogonek = 556; a.Uogonek = 722; a.Aacute = 722; a.Adieresis = 722; a.egrave = 556; a.zacute = 500; a.iogonek = 278; a.Oacute = 778; a.oacute = 611; a.amacron = 556; a.sacute = 556; a.idieresis = 278; a.Ocircumflex = 778; a.Ugrave = 722; a.Delta = 612; a.thorn = 611; a.twosuperior = 333; a.Odieresis = 778; a.mu = 611; a.igrave = 278; a.ohungarumlaut = 611; a.Eogonek = 667; a.dcroat = 611; a.threequarters = 834; a.Scedilla = 667; a.lcaron = 400; a.Kcommaaccent = 722; a.Lacute = 611; a.trademark = 1E3; a.edotaccent = 556; a.Igrave = 278; a.Imacron = 278; a.Lcaron = 611; a.onehalf = 834; a.lessequal = 549; a.ocircumflex = 611; a.ntilde = 611; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 556; a.gbreve = 611; a.onequarter = 834; a.Scaron = 667; a.Scommaaccent = 667; a.Ohungarumlaut = 778; a.degree = 400; a.ograve = 611; a.Ccaron = 722; a.ugrave = 611; a.radical = 549; a.Dcaron = 722; a.rcommaaccent = 389; a.Ntilde = 722; a.otilde = 611; a.Rcommaaccent = 722; a.Lcommaaccent = 611; a.Atilde = 722; a.Aogonek = 722; a.Aring = 722; a.Otilde = 778; a.zdotaccent = 500; a.Ecaron = 667; a.Iogonek = 278; a.kcommaaccent = 556; a.minus = 584; a.Icircumflex = 278; a.ncaron = 611; a.tcommaaccent = 333; a.logicalnot = 584; a.odieresis = 611; a.udieresis = 611; a.notequal = 549; a.gcommaaccent = 611; a.eth = 611; a.zcaron = 500; a.ncommaaccent = 611; a.onesuperior = 333; a.imacron = 278; a.Euro = 556 }); a["Helvetica-BoldOblique"] = R(function (a) { a.space = 278; a.exclam = 333; a.quotedbl = 474; a.numbersign = 556; a.dollar = 556; a.percent = 889; a.ampersand = 722; a.quoteright = 278; a.parenleft = 333; a.parenright = 333; a.asterisk = 389; a.plus = 584; a.comma = 278; a.hyphen = 333; a.period = 278; a.slash = 278; a.zero = 556; a.one = 556; a.two = 556; a.three = 556; a.four = 556; a.five = 556; a.six = 556; a.seven = 556; a.eight = 556; a.nine = 556; a.colon = 333; a.semicolon = 333; a.less = 584; a.equal = 584; a.greater = 584; a.question = 611; a.at = 975; a.A = 722; a.B = 722; a.C = 722; a.D = 722; a.E = 667; a.F = 611; a.G = 778; a.H = 722; a.I = 278; a.J = 556; a.K = 722; a.L = 611; a.M = 833; a.N = 722; a.O = 778; a.P = 667; a.Q = 778; a.R = 722; a.S = 667; a.T = 611; a.U = 722; a.V = 667; a.W = 944; a.X = 667; a.Y = 667; a.Z = 611; a.bracketleft = 333; a.backslash = 278; a.bracketright = 333; a.asciicircum = 584; a.underscore = 556; a.quoteleft = 278; a.a = 556; a.b = 611; a.c = 556; a.d = 611; a.e = 556; a.f = 333; a.g = 611; a.h = 611; a.i = 278; a.j = 278; a.k = 556; a.l = 278; a.m = 889; a.n = 611; a.o = 611; a.p = 611; a.q = 611; a.r = 389; a.s = 556; a.t = 333; a.u = 611; a.v = 556; a.w = 778; a.x = 556; a.y = 556; a.z = 500; a.braceleft = 389; a.bar = 280; a.braceright = 389; a.asciitilde = 584; a.exclamdown = 333; a.cent = 556; a.sterling = 556; a.fraction = 167; a.yen = 556; a.florin = 556; a.section = 556; a.currency = 556; a.quotesingle = 238; a.quotedblleft = 500; a.guillemotleft = 556; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 611; a.fl = 611; a.endash = 556; a.dagger = 556; a.daggerdbl = 556; a.periodcentered = 278; a.paragraph = 556; a.bullet = 350; a.quotesinglbase = 278; a.quotedblbase = 500; a.quotedblright = 500; a.guillemotright = 556; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 611; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 1E3; a.ordfeminine = 370; a.Lslash = 611; a.Oslash = 778; a.OE = 1E3; a.ordmasculine = 365; a.ae = 889; a.dotlessi = 278; a.lslash = 278; a.oslash = 611; a.oe = 944; a.germandbls = 611; a.Idieresis = 278; a.eacute = 556; a.abreve = 556; a.uhungarumlaut = 611; a.ecaron = 556; a.Ydieresis = 667; a.divide = 584; a.Yacute = 667; a.Acircumflex = 722; a.aacute = 556; a.Ucircumflex = 722; a.yacute = 556; a.scommaaccent = 556; a.ecircumflex = 556; a.Uring = 722; a.Udieresis = 722; a.aogonek = 556; a.Uacute = 722; a.uogonek = 611; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 737; a.Emacron = 667; a.ccaron = 556; a.aring = 556; a.Ncommaaccent = 722; a.lacute = 278; a.agrave = 556; a.Tcommaaccent = 611; a.Cacute = 722; a.atilde = 556; a.Edotaccent = 667; a.scaron = 556; a.scedilla = 556; a.iacute = 278; a.lozenge = 494; a.Rcaron = 722; a.Gcommaaccent = 778; a.ucircumflex = 611; a.acircumflex = 556; a.Amacron = 722; a.rcaron = 389; a.ccedilla = 556; a.Zdotaccent = 611; a.Thorn = 667; a.Omacron = 778; a.Racute = 722; a.Sacute = 667; a.dcaron = 743; a.Umacron = 722; a.uring = 611; a.threesuperior = 333; a.Ograve = 778; a.Agrave = 722; a.Abreve = 722; a.multiply = 584; a.uacute = 611; a.Tcaron = 611; a.partialdiff = 494; a.ydieresis = 556; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 556; a.edieresis = 556; a.cacute = 556; a.nacute = 611; a.umacron = 611; a.Ncaron = 722; a.Iacute = 278; a.plusminus = 584; a.brokenbar = 280; a.registered = 737; a.Gbreve = 778; a.Idotaccent = 278; a.summation = 600; a.Egrave = 667; a.racute = 389; a.omacron = 611; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 722; a.lcommaaccent = 278; a.tcaron = 389; a.eogonek = 556; a.Uogonek = 722; a.Aacute = 722; a.Adieresis = 722; a.egrave = 556; a.zacute = 500; a.iogonek = 278; a.Oacute = 778; a.oacute = 611; a.amacron = 556; a.sacute = 556; a.idieresis = 278; a.Ocircumflex = 778; a.Ugrave = 722; a.Delta = 612; a.thorn = 611; a.twosuperior = 333; a.Odieresis = 778; a.mu = 611; a.igrave = 278; a.ohungarumlaut = 611; a.Eogonek = 667; a.dcroat = 611; a.threequarters = 834; a.Scedilla = 667; a.lcaron = 400; a.Kcommaaccent = 722; a.Lacute = 611; a.trademark = 1E3; a.edotaccent = 556; a.Igrave = 278; a.Imacron = 278; a.Lcaron = 611; a.onehalf = 834; a.lessequal = 549; a.ocircumflex = 611; a.ntilde = 611; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 556; a.gbreve = 611; a.onequarter = 834; a.Scaron = 667; a.Scommaaccent = 667; a.Ohungarumlaut = 778; a.degree = 400; a.ograve = 611; a.Ccaron = 722; a.ugrave = 611; a.radical = 549; a.Dcaron = 722; a.rcommaaccent = 389; a.Ntilde = 722; a.otilde = 611; a.Rcommaaccent = 722; a.Lcommaaccent = 611; a.Atilde = 722; a.Aogonek = 722; a.Aring = 722; a.Otilde = 778; a.zdotaccent = 500; a.Ecaron = 667; a.Iogonek = 278; a.kcommaaccent = 556; a.minus = 584; a.Icircumflex = 278; a.ncaron = 611; a.tcommaaccent = 333; a.logicalnot = 584; a.odieresis = 611; a.udieresis = 611; a.notequal = 549; a.gcommaaccent = 611; a.eth = 611; a.zcaron = 500; a.ncommaaccent = 611; a.onesuperior = 333; a.imacron = 278; a.Euro = 556 }); a["Helvetica-Oblique"] = R(function (a) { a.space = 278; a.exclam = 278; a.quotedbl = 355; a.numbersign = 556; a.dollar = 556; a.percent = 889; a.ampersand = 667; a.quoteright = 222; a.parenleft = 333; a.parenright = 333; a.asterisk = 389; a.plus = 584; a.comma = 278; a.hyphen = 333; a.period = 278; a.slash = 278; a.zero = 556; a.one = 556; a.two = 556; a.three = 556; a.four = 556; a.five = 556; a.six = 556; a.seven = 556; a.eight = 556; a.nine = 556; a.colon = 278; a.semicolon = 278; a.less = 584; a.equal = 584; a.greater = 584; a.question = 556; a.at = 1015; a.A = 667; a.B = 667; a.C = 722; a.D = 722; a.E = 667; a.F = 611; a.G = 778; a.H = 722; a.I = 278; a.J = 500; a.K = 667; a.L = 556; a.M = 833; a.N = 722; a.O = 778; a.P = 667; a.Q = 778; a.R = 722; a.S = 667; a.T = 611; a.U = 722; a.V = 667; a.W = 944; a.X = 667; a.Y = 667; a.Z = 611; a.bracketleft = 278; a.backslash = 278; a.bracketright = 278; a.asciicircum = 469; a.underscore = 556; a.quoteleft = 222; a.a = 556; a.b = 556; a.c = 500; a.d = 556; a.e = 556; a.f = 278; a.g = 556; a.h = 556; a.i = 222; a.j = 222; a.k = 500; a.l = 222; a.m = 833; a.n = 556; a.o = 556; a.p = 556; a.q = 556; a.r = 333; a.s = 500; a.t = 278; a.u = 556; a.v = 500; a.w = 722; a.x = 500; a.y = 500; a.z = 500; a.braceleft = 334; a.bar = 260; a.braceright = 334; a.asciitilde = 584; a.exclamdown = 333; a.cent = 556; a.sterling = 556; a.fraction = 167; a.yen = 556; a.florin = 556; a.section = 556; a.currency = 556; a.quotesingle = 191; a.quotedblleft = 333; a.guillemotleft = 556; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 500; a.fl = 500; a.endash = 556; a.dagger = 556; a.daggerdbl = 556; a.periodcentered = 278; a.paragraph = 537; a.bullet = 350; a.quotesinglbase = 222; a.quotedblbase = 333; a.quotedblright = 333; a.guillemotright = 556; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 611; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 1E3; a.ordfeminine = 370; a.Lslash = 556; a.Oslash = 778; a.OE = 1E3; a.ordmasculine = 365; a.ae = 889; a.dotlessi = 278; a.lslash = 222; a.oslash = 611; a.oe = 944; a.germandbls = 611; a.Idieresis = 278; a.eacute = 556; a.abreve = 556; a.uhungarumlaut = 556; a.ecaron = 556; a.Ydieresis = 667; a.divide = 584; a.Yacute = 667; a.Acircumflex = 667; a.aacute = 556; a.Ucircumflex = 722; a.yacute = 500; a.scommaaccent = 500; a.ecircumflex = 556; a.Uring = 722; a.Udieresis = 722; a.aogonek = 556; a.Uacute = 722; a.uogonek = 556; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 737; a.Emacron = 667; a.ccaron = 500; a.aring = 556; a.Ncommaaccent = 722; a.lacute = 222; a.agrave = 556; a.Tcommaaccent = 611; a.Cacute = 722; a.atilde = 556; a.Edotaccent = 667; a.scaron = 500; a.scedilla = 500; a.iacute = 278; a.lozenge = 471; a.Rcaron = 722; a.Gcommaaccent = 778; a.ucircumflex = 556; a.acircumflex = 556; a.Amacron = 667; a.rcaron = 333; a.ccedilla = 500; a.Zdotaccent = 611; a.Thorn = 667; a.Omacron = 778; a.Racute = 722; a.Sacute = 667; a.dcaron = 643; a.Umacron = 722; a.uring = 556; a.threesuperior = 333; a.Ograve = 778; a.Agrave = 667; a.Abreve = 667; a.multiply = 584; a.uacute = 556; a.Tcaron = 611; a.partialdiff = 476; a.ydieresis = 500; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 556; a.edieresis = 556; a.cacute = 500; a.nacute = 556; a.umacron = 556; a.Ncaron = 722; a.Iacute = 278; a.plusminus = 584; a.brokenbar = 260; a.registered = 737; a.Gbreve = 778; a.Idotaccent = 278; a.summation = 600; a.Egrave = 667; a.racute = 333; a.omacron = 556; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 722; a.lcommaaccent = 222; a.tcaron = 317; a.eogonek = 556; a.Uogonek = 722; a.Aacute = 667; a.Adieresis = 667; a.egrave = 556; a.zacute = 500; a.iogonek = 222; a.Oacute = 778; a.oacute = 556; a.amacron = 556; a.sacute = 500; a.idieresis = 278; a.Ocircumflex = 778; a.Ugrave = 722; a.Delta = 612; a.thorn = 556; a.twosuperior = 333; a.Odieresis = 778; a.mu = 556; a.igrave = 278; a.ohungarumlaut = 556; a.Eogonek = 667; a.dcroat = 556; a.threequarters = 834; a.Scedilla = 667; a.lcaron = 299; a.Kcommaaccent = 667; a.Lacute = 556; a.trademark = 1E3; a.edotaccent = 556; a.Igrave = 278; a.Imacron = 278; a.Lcaron = 556; a.onehalf = 834; a.lessequal = 549; a.ocircumflex = 556; a.ntilde = 556; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 556; a.gbreve = 556; a.onequarter = 834; a.Scaron = 667; a.Scommaaccent = 667; a.Ohungarumlaut = 778; a.degree = 400; a.ograve = 556; a.Ccaron = 722; a.ugrave = 556; a.radical = 453; a.Dcaron = 722; a.rcommaaccent = 333; a.Ntilde = 722; a.otilde = 556; a.Rcommaaccent = 722; a.Lcommaaccent = 556; a.Atilde = 667; a.Aogonek = 667; a.Aring = 667; a.Otilde = 778; a.zdotaccent = 500; a.Ecaron = 667; a.Iogonek = 278; a.kcommaaccent = 500; a.minus = 584; a.Icircumflex = 278; a.ncaron = 556; a.tcommaaccent = 278; a.logicalnot = 584; a.odieresis = 556; a.udieresis = 556; a.notequal = 549; a.gcommaaccent = 556; a.eth = 556; a.zcaron = 500; a.ncommaaccent = 556; a.onesuperior = 333; a.imacron = 278; a.Euro = 556 }); a.Symbol = R(function (a) { a.space = 250; a.exclam = 333; a.universal = 713; a.numbersign = 500; a.existential = 549; a.percent = 833; a.ampersand = 778; a.suchthat = 439; a.parenleft = 333; a.parenright = 333; a.asteriskmath = 500; a.plus = 549; a.comma = 250; a.minus = 549; a.period = 250; a.slash = 278; a.zero = 500; a.one = 500; a.two = 500; a.three = 500; a.four = 500; a.five = 500; a.six = 500; a.seven = 500; a.eight = 500; a.nine = 500; a.colon = 278; a.semicolon = 278; a.less = 549; a.equal = 549; a.greater = 549; a.question = 444; a.congruent = 549; a.Alpha = 722; a.Beta = 667; a.Chi = 722; a.Delta = 612; a.Epsilon = 611; a.Phi = 763; a.Gamma = 603; a.Eta = 722; a.Iota = 333; a.theta1 = 631; a.Kappa = 722; a.Lambda = 686; a.Mu = 889; a.Nu = 722; a.Omicron = 722; a.Pi = 768; a.Theta = 741; a.Rho = 556; a.Sigma = 592; a.Tau = 611; a.Upsilon = 690; a.sigma1 = 439; a.Omega = 768; a.Xi = 645; a.Psi = 795; a.Zeta = 611; a.bracketleft = 333; a.therefore = 863; a.bracketright = 333; a.perpendicular = 658; a.underscore = 500; a.radicalex = 500; a.alpha = 631; a.beta = 549; a.chi = 549; a.delta = 494; a.epsilon = 439; a.phi = 521; a.gamma = 411; a.eta = 603; a.iota = 329; a.phi1 = 603; a.kappa = 549; a.lambda = 549; a.mu = 576; a.nu = 521; a.omicron = 549; a.pi = 549; a.theta = 521; a.rho = 549; a.sigma = 603; a.tau = 439; a.upsilon = 576; a.omega1 = 713; a.omega = 686; a.xi = 493; a.psi = 686; a.zeta = 494; a.braceleft = 480; a.bar = 200; a.braceright = 480; a.similar = 549; a.Euro = 750; a.Upsilon1 = 620; a.minute = 247; a.lessequal = 549; a.fraction = 167; a.infinity = 713; a.florin = 500; a.club = 753; a.diamond = 753; a.heart = 753; a.spade = 753; a.arrowboth = 1042; a.arrowleft = 987; a.arrowup = 603; a.arrowright = 987; a.arrowdown = 603; a.degree = 400; a.plusminus = 549; a.second = 411; a.greaterequal = 549; a.multiply = 549; a.proportional = 713; a.partialdiff = 494; a.bullet = 460; a.divide = 549; a.notequal = 549; a.equivalence = 549; a.approxequal = 549; a.ellipsis = 1E3; a.arrowvertex = 603; a.arrowhorizex = 1E3; a.carriagereturn = 658; a.aleph = 823; a.Ifraktur = 686; a.Rfraktur = 795; a.weierstrass = 987; a.circlemultiply = 768; a.circleplus = 768; a.emptyset = 823; a.intersection = 768; a.union = 768; a.propersuperset = 713; a.reflexsuperset = 713; a.notsubset = 713; a.propersubset = 713; a.reflexsubset = 713; a.element = 713; a.notelement = 713; a.angle = 768; a.gradient = 713; a.registerserif = 790; a.copyrightserif = 790; a.trademarkserif = 890; a.product = 823; a.radical = 549; a.dotmath = 250; a.logicalnot = 713; a.logicaland = 603; a.logicalor = 603; a.arrowdblboth = 1042; a.arrowdblleft = 987; a.arrowdblup = 603; a.arrowdblright = 987; a.arrowdbldown = 603; a.lozenge = 494; a.angleleft = 329; a.registersans = 790; a.copyrightsans = 790; a.trademarksans = 786; a.summation = 713; a.parenlefttp = 384; a.parenleftex = 384; a.parenleftbt = 384; a.bracketlefttp = 384; a.bracketleftex = 384; a.bracketleftbt = 384; a.bracelefttp = 494; a.braceleftmid = 494; a.braceleftbt = 494; a.braceex = 494; a.angleright = 329; a.integral = 274; a.integraltp = 686; a.integralex = 686; a.integralbt = 686; a.parenrighttp = 384; a.parenrightex = 384; a.parenrightbt = 384; a.bracketrighttp = 384; a.bracketrightex = 384; a.bracketrightbt = 384; a.bracerighttp = 494; a.bracerightmid = 494; a.bracerightbt = 494; a.apple = 790 }); a["Times-Roman"] = R(function (a) { a.space = 250; a.exclam = 333; a.quotedbl = 408; a.numbersign = 500; a.dollar = 500; a.percent = 833; a.ampersand = 778; a.quoteright = 333; a.parenleft = 333; a.parenright = 333; a.asterisk = 500; a.plus = 564; a.comma = 250; a.hyphen = 333; a.period = 250; a.slash = 278; a.zero = 500; a.one = 500; a.two = 500; a.three = 500; a.four = 500; a.five = 500; a.six = 500; a.seven = 500; a.eight = 500; a.nine = 500; a.colon = 278; a.semicolon = 278; a.less = 564; a.equal = 564; a.greater = 564; a.question = 444; a.at = 921; a.A = 722; a.B = 667; a.C = 667; a.D = 722; a.E = 611; a.F = 556; a.G = 722; a.H = 722; a.I = 333; a.J = 389; a.K = 722; a.L = 611; a.M = 889; a.N = 722; a.O = 722; a.P = 556; a.Q = 722; a.R = 667; a.S = 556; a.T = 611; a.U = 722; a.V = 722; a.W = 944; a.X = 722; a.Y = 722; a.Z = 611; a.bracketleft = 333; a.backslash = 278; a.bracketright = 333; a.asciicircum = 469; a.underscore = 500; a.quoteleft = 333; a.a = 444; a.b = 500; a.c = 444; a.d = 500; a.e = 444; a.f = 333; a.g = 500; a.h = 500; a.i = 278; a.j = 278; a.k = 500; a.l = 278; a.m = 778; a.n = 500; a.o = 500; a.p = 500; a.q = 500; a.r = 333; a.s = 389; a.t = 278; a.u = 500; a.v = 500; a.w = 722; a.x = 500; a.y = 500; a.z = 444; a.braceleft = 480; a.bar = 200; a.braceright = 480; a.asciitilde = 541; a.exclamdown = 333; a.cent = 500; a.sterling = 500; a.fraction = 167; a.yen = 500; a.florin = 500; a.section = 500; a.currency = 500; a.quotesingle = 180; a.quotedblleft = 444; a.guillemotleft = 500; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 556; a.fl = 556; a.endash = 500; a.dagger = 500; a.daggerdbl = 500; a.periodcentered = 250; a.paragraph = 453; a.bullet = 350; a.quotesinglbase = 333; a.quotedblbase = 444; a.quotedblright = 444; a.guillemotright = 500; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 444; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 889; a.ordfeminine = 276; a.Lslash = 611; a.Oslash = 722; a.OE = 889; a.ordmasculine = 310; a.ae = 667; a.dotlessi = 278; a.lslash = 278; a.oslash = 500; a.oe = 722; a.germandbls = 500; a.Idieresis = 333; a.eacute = 444; a.abreve = 444; a.uhungarumlaut = 500; a.ecaron = 444; a.Ydieresis = 722; a.divide = 564; a.Yacute = 722; a.Acircumflex = 722; a.aacute = 444; a.Ucircumflex = 722; a.yacute = 500; a.scommaaccent = 389; a.ecircumflex = 444; a.Uring = 722; a.Udieresis = 722; a.aogonek = 444; a.Uacute = 722; a.uogonek = 500; a.Edieresis = 611; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 760; a.Emacron = 611; a.ccaron = 444; a.aring = 444; a.Ncommaaccent = 722; a.lacute = 278; a.agrave = 444; a.Tcommaaccent = 611; a.Cacute = 667; a.atilde = 444; a.Edotaccent = 611; a.scaron = 389; a.scedilla = 389; a.iacute = 278; a.lozenge = 471; a.Rcaron = 667; a.Gcommaaccent = 722; a.ucircumflex = 500; a.acircumflex = 444; a.Amacron = 722; a.rcaron = 333; a.ccedilla = 444; a.Zdotaccent = 611; a.Thorn = 556; a.Omacron = 722; a.Racute = 667; a.Sacute = 556; a.dcaron = 588; a.Umacron = 722; a.uring = 500; a.threesuperior = 300; a.Ograve = 722; a.Agrave = 722; a.Abreve = 722; a.multiply = 564; a.uacute = 500; a.Tcaron = 611; a.partialdiff = 476; a.ydieresis = 500; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 611; a.adieresis = 444; a.edieresis = 444; a.cacute = 444; a.nacute = 500; a.umacron = 500; a.Ncaron = 722; a.Iacute = 333; a.plusminus = 564; a.brokenbar = 200; a.registered = 760; a.Gbreve = 722; a.Idotaccent = 333; a.summation = 600; a.Egrave = 611; a.racute = 333; a.omacron = 500; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 667; a.lcommaaccent = 278; a.tcaron = 326; a.eogonek = 444; a.Uogonek = 722; a.Aacute = 722; a.Adieresis = 722; a.egrave = 444; a.zacute = 444; a.iogonek = 278; a.Oacute = 722; a.oacute = 500; a.amacron = 444; a.sacute = 389; a.idieresis = 278; a.Ocircumflex = 722; a.Ugrave = 722; a.Delta = 612; a.thorn = 500; a.twosuperior = 300; a.Odieresis = 722; a.mu = 500; a.igrave = 278; a.ohungarumlaut = 500; a.Eogonek = 611; a.dcroat = 500; a.threequarters = 750; a.Scedilla = 556; a.lcaron = 344; a.Kcommaaccent = 722; a.Lacute = 611; a.trademark = 980; a.edotaccent = 444; a.Igrave = 333; a.Imacron = 333; a.Lcaron = 611; a.onehalf = 750; a.lessequal = 549; a.ocircumflex = 500; a.ntilde = 500; a.Uhungarumlaut = 722; a.Eacute = 611; a.emacron = 444; a.gbreve = 500; a.onequarter = 750; a.Scaron = 556; a.Scommaaccent = 556; a.Ohungarumlaut = 722; a.degree = 400; a.ograve = 500; a.Ccaron = 667; a.ugrave = 500; a.radical = 453; a.Dcaron = 722; a.rcommaaccent = 333; a.Ntilde = 722; a.otilde = 500; a.Rcommaaccent = 667; a.Lcommaaccent = 611; a.Atilde = 722; a.Aogonek = 722; a.Aring = 722; a.Otilde = 722; a.zdotaccent = 444; a.Ecaron = 611; a.Iogonek = 333; a.kcommaaccent = 500; a.minus = 564; a.Icircumflex = 333; a.ncaron = 500; a.tcommaaccent = 278; a.logicalnot = 564; a.odieresis = 500; a.udieresis = 500; a.notequal = 549; a.gcommaaccent = 500; a.eth = 500; a.zcaron = 444; a.ncommaaccent = 500; a.onesuperior = 300; a.imacron = 278; a.Euro = 500 }); a["Times-Bold"] = R(function (a) { a.space = 250; a.exclam = 333; a.quotedbl = 555; a.numbersign = 500; a.dollar = 500; a.percent = 1E3; a.ampersand = 833; a.quoteright = 333; a.parenleft = 333; a.parenright = 333; a.asterisk = 500; a.plus = 570; a.comma = 250; a.hyphen = 333; a.period = 250; a.slash = 278; a.zero = 500; a.one = 500; a.two = 500; a.three = 500; a.four = 500; a.five = 500; a.six = 500; a.seven = 500; a.eight = 500; a.nine = 500; a.colon = 333; a.semicolon = 333; a.less = 570; a.equal = 570; a.greater = 570; a.question = 500; a.at = 930; a.A = 722; a.B = 667; a.C = 722; a.D = 722; a.E = 667; a.F = 611; a.G = 778; a.H = 778; a.I = 389; a.J = 500; a.K = 778; a.L = 667; a.M = 944; a.N = 722; a.O = 778; a.P = 611; a.Q = 778; a.R = 722; a.S = 556; a.T = 667; a.U = 722; a.V = 722; a.W = 1E3; a.X = 722; a.Y = 722; a.Z = 667; a.bracketleft = 333; a.backslash = 278; a.bracketright = 333; a.asciicircum = 581; a.underscore = 500; a.quoteleft = 333; a.a = 500; a.b = 556; a.c = 444; a.d = 556; a.e = 444; a.f = 333; a.g = 500; a.h = 556; a.i = 278; a.j = 333; a.k = 556; a.l = 278; a.m = 833; a.n = 556; a.o = 500; a.p = 556; a.q = 556; a.r = 444; a.s = 389; a.t = 333; a.u = 556; a.v = 500; a.w = 722; a.x = 500; a.y = 500; a.z = 444; a.braceleft = 394; a.bar = 220; a.braceright = 394; a.asciitilde = 520; a.exclamdown = 333; a.cent = 500; a.sterling = 500; a.fraction = 167; a.yen = 500; a.florin = 500; a.section = 500; a.currency = 500; a.quotesingle = 278; a.quotedblleft = 500; a.guillemotleft = 500; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 556; a.fl = 556; a.endash = 500; a.dagger = 500; a.daggerdbl = 500; a.periodcentered = 250; a.paragraph = 540; a.bullet = 350; a.quotesinglbase = 333; a.quotedblbase = 500; a.quotedblright = 500; a.guillemotright = 500; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 500; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 1E3; a.ordfeminine = 300; a.Lslash = 667; a.Oslash = 778; a.OE = 1E3; a.ordmasculine = 330; a.ae = 722; a.dotlessi = 278; a.lslash = 278; a.oslash = 500; a.oe = 722; a.germandbls = 556; a.Idieresis = 389; a.eacute = 444; a.abreve = 500; a.uhungarumlaut = 556; a.ecaron = 444; a.Ydieresis = 722; a.divide = 570; a.Yacute = 722; a.Acircumflex = 722; a.aacute = 500; a.Ucircumflex = 722; a.yacute = 500; a.scommaaccent = 389; a.ecircumflex = 444; a.Uring = 722; a.Udieresis = 722; a.aogonek = 500; a.Uacute = 722; a.uogonek = 556; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 747; a.Emacron = 667; a.ccaron = 444; a.aring = 500; a.Ncommaaccent = 722; a.lacute = 278; a.agrave = 500; a.Tcommaaccent = 667; a.Cacute = 722; a.atilde = 500; a.Edotaccent = 667; a.scaron = 389; a.scedilla = 389; a.iacute = 278; a.lozenge = 494; a.Rcaron = 722; a.Gcommaaccent = 778; a.ucircumflex = 556; a.acircumflex = 500; a.Amacron = 722; a.rcaron = 444; a.ccedilla = 444; a.Zdotaccent = 667; a.Thorn = 611; a.Omacron = 778; a.Racute = 722; a.Sacute = 556; a.dcaron = 672; a.Umacron = 722; a.uring = 556; a.threesuperior = 300; a.Ograve = 778; a.Agrave = 722; a.Abreve = 722; a.multiply = 570; a.uacute = 556; a.Tcaron = 667; a.partialdiff = 494; a.ydieresis = 500; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 500; a.edieresis = 444; a.cacute = 444; a.nacute = 556; a.umacron = 556; a.Ncaron = 722; a.Iacute = 389; a.plusminus = 570; a.brokenbar = 220; a.registered = 747; a.Gbreve = 778; a.Idotaccent = 389; a.summation = 600; a.Egrave = 667; a.racute = 444; a.omacron = 500; a.Zacute = 667; a.Zcaron = 667; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 722; a.lcommaaccent = 278; a.tcaron = 416; a.eogonek = 444; a.Uogonek = 722; a.Aacute = 722; a.Adieresis = 722; a.egrave = 444; a.zacute = 444; a.iogonek = 278; a.Oacute = 778; a.oacute = 500; a.amacron = 500; a.sacute = 389; a.idieresis = 278; a.Ocircumflex = 778; a.Ugrave = 722; a.Delta = 612; a.thorn = 556; a.twosuperior = 300; a.Odieresis = 778; a.mu = 556; a.igrave = 278; a.ohungarumlaut = 500; a.Eogonek = 667; a.dcroat = 556; a.threequarters = 750; a.Scedilla = 556; a.lcaron = 394; a.Kcommaaccent = 778; a.Lacute = 667; a.trademark = 1E3; a.edotaccent = 444; a.Igrave = 389; a.Imacron = 389; a.Lcaron = 667; a.onehalf = 750; a.lessequal = 549; a.ocircumflex = 500; a.ntilde = 556; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 444; a.gbreve = 500; a.onequarter = 750; a.Scaron = 556; a.Scommaaccent = 556; a.Ohungarumlaut = 778; a.degree = 400; a.ograve = 500; a.Ccaron = 722; a.ugrave = 556; a.radical = 549; a.Dcaron = 722; a.rcommaaccent = 444; a.Ntilde = 722; a.otilde = 500; a.Rcommaaccent = 722; a.Lcommaaccent = 667; a.Atilde = 722; a.Aogonek = 722; a.Aring = 722; a.Otilde = 778; a.zdotaccent = 444; a.Ecaron = 667; a.Iogonek = 389; a.kcommaaccent = 556; a.minus = 570; a.Icircumflex = 389; a.ncaron = 556; a.tcommaaccent = 333; a.logicalnot = 570; a.odieresis = 500; a.udieresis = 556; a.notequal = 549; a.gcommaaccent = 500; a.eth = 500; a.zcaron = 444; a.ncommaaccent = 556; a.onesuperior = 300; a.imacron = 278; a.Euro = 500 }); a["Times-BoldItalic"] = R(function (a) { a.space = 250; a.exclam = 389; a.quotedbl = 555; a.numbersign = 500; a.dollar = 500; a.percent = 833; a.ampersand = 778; a.quoteright = 333; a.parenleft = 333; a.parenright = 333; a.asterisk = 500; a.plus = 570; a.comma = 250; a.hyphen = 333; a.period = 250; a.slash = 278; a.zero = 500; a.one = 500; a.two = 500; a.three = 500; a.four = 500; a.five = 500; a.six = 500; a.seven = 500; a.eight = 500; a.nine = 500; a.colon = 333; a.semicolon = 333; a.less = 570; a.equal = 570; a.greater = 570; a.question = 500; a.at = 832; a.A = 667; a.B = 667; a.C = 667; a.D = 722; a.E = 667; a.F = 667; a.G = 722; a.H = 778; a.I = 389; a.J = 500; a.K = 667; a.L = 611; a.M = 889; a.N = 722; a.O = 722; a.P = 611; a.Q = 722; a.R = 667; a.S = 556; a.T = 611; a.U = 722; a.V = 667; a.W = 889; a.X = 667; a.Y = 611; a.Z = 611; a.bracketleft = 333; a.backslash = 278; a.bracketright = 333; a.asciicircum = 570; a.underscore = 500; a.quoteleft = 333; a.a = 500; a.b = 500; a.c = 444; a.d = 500; a.e = 444; a.f = 333; a.g = 500; a.h = 556; a.i = 278; a.j = 278; a.k = 500; a.l = 278; a.m = 778; a.n = 556; a.o = 500; a.p = 500; a.q = 500; a.r = 389; a.s = 389; a.t = 278; a.u = 556; a.v = 444; a.w = 667; a.x = 500; a.y = 444; a.z = 389; a.braceleft = 348; a.bar = 220; a.braceright = 348; a.asciitilde = 570; a.exclamdown = 389; a.cent = 500; a.sterling = 500; a.fraction = 167; a.yen = 500; a.florin = 500; a.section = 500; a.currency = 500; a.quotesingle = 278; a.quotedblleft = 500; a.guillemotleft = 500; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 556; a.fl = 556; a.endash = 500; a.dagger = 500; a.daggerdbl = 500; a.periodcentered = 250; a.paragraph = 500; a.bullet = 350; a.quotesinglbase = 333; a.quotedblbase = 500; a.quotedblright = 500; a.guillemotright = 500; a.ellipsis = 1E3; a.perthousand = 1E3; a.questiondown = 500; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 1E3; a.AE = 944; a.ordfeminine = 266; a.Lslash = 611; a.Oslash = 722; a.OE = 944; a.ordmasculine = 300; a.ae = 722; a.dotlessi = 278; a.lslash = 278; a.oslash = 500; a.oe = 722; a.germandbls = 500; a.Idieresis = 389; a.eacute = 444; a.abreve = 500; a.uhungarumlaut = 556; a.ecaron = 444; a.Ydieresis = 611; a.divide = 570; a.Yacute = 611; a.Acircumflex = 667; a.aacute = 500; a.Ucircumflex = 722; a.yacute = 444; a.scommaaccent = 389; a.ecircumflex = 444; a.Uring = 722; a.Udieresis = 722; a.aogonek = 500; a.Uacute = 722; a.uogonek = 556; a.Edieresis = 667; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 747; a.Emacron = 667; a.ccaron = 444; a.aring = 500; a.Ncommaaccent = 722; a.lacute = 278; a.agrave = 500; a.Tcommaaccent = 611; a.Cacute = 667; a.atilde = 500; a.Edotaccent = 667; a.scaron = 389; a.scedilla = 389; a.iacute = 278; a.lozenge = 494; a.Rcaron = 667; a.Gcommaaccent = 722; a.ucircumflex = 556; a.acircumflex = 500; a.Amacron = 667; a.rcaron = 389; a.ccedilla = 444; a.Zdotaccent = 611; a.Thorn = 611; a.Omacron = 722; a.Racute = 667; a.Sacute = 556; a.dcaron = 608; a.Umacron = 722; a.uring = 556; a.threesuperior = 300; a.Ograve = 722; a.Agrave = 667; a.Abreve = 667; a.multiply = 570; a.uacute = 556; a.Tcaron = 611; a.partialdiff = 494; a.ydieresis = 444; a.Nacute = 722; a.icircumflex = 278; a.Ecircumflex = 667; a.adieresis = 500; a.edieresis = 444; a.cacute = 444; a.nacute = 556; a.umacron = 556; a.Ncaron = 722; a.Iacute = 389; a.plusminus = 570; a.brokenbar = 220; a.registered = 747; a.Gbreve = 722; a.Idotaccent = 389; a.summation = 600; a.Egrave = 667; a.racute = 389; a.omacron = 500; a.Zacute = 611; a.Zcaron = 611; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 667; a.lcommaaccent = 278; a.tcaron = 366; a.eogonek = 444; a.Uogonek = 722; a.Aacute = 667; a.Adieresis = 667; a.egrave = 444; a.zacute = 389; a.iogonek = 278; a.Oacute = 722; a.oacute = 500; a.amacron = 500; a.sacute = 389; a.idieresis = 278; a.Ocircumflex = 722; a.Ugrave = 722; a.Delta = 612; a.thorn = 500; a.twosuperior = 300; a.Odieresis = 722; a.mu = 576; a.igrave = 278; a.ohungarumlaut = 500; a.Eogonek = 667; a.dcroat = 500; a.threequarters = 750; a.Scedilla = 556; a.lcaron = 382; a.Kcommaaccent = 667; a.Lacute = 611; a.trademark = 1E3; a.edotaccent = 444; a.Igrave = 389; a.Imacron = 389; a.Lcaron = 611; a.onehalf = 750; a.lessequal = 549; a.ocircumflex = 500; a.ntilde = 556; a.Uhungarumlaut = 722; a.Eacute = 667; a.emacron = 444; a.gbreve = 500; a.onequarter = 750; a.Scaron = 556; a.Scommaaccent = 556; a.Ohungarumlaut = 722; a.degree = 400; a.ograve = 500; a.Ccaron = 667; a.ugrave = 556; a.radical = 549; a.Dcaron = 722; a.rcommaaccent = 389; a.Ntilde = 722; a.otilde = 500; a.Rcommaaccent = 667; a.Lcommaaccent = 611; a.Atilde = 667; a.Aogonek = 667; a.Aring = 667; a.Otilde = 722; a.zdotaccent = 389; a.Ecaron = 667; a.Iogonek = 389; a.kcommaaccent = 500; a.minus = 606; a.Icircumflex = 389; a.ncaron = 556; a.tcommaaccent = 278; a.logicalnot = 606; a.odieresis = 500; a.udieresis = 556; a.notequal = 549; a.gcommaaccent = 500; a.eth = 500; a.zcaron = 389; a.ncommaaccent = 556; a.onesuperior = 300; a.imacron = 278; a.Euro = 500 }); a["Times-Italic"] = R(function (a) { a.space = 250; a.exclam = 333; a.quotedbl = 420; a.numbersign = 500; a.dollar = 500; a.percent = 833; a.ampersand = 778; a.quoteright = 333; a.parenleft = 333; a.parenright = 333; a.asterisk = 500; a.plus = 675; a.comma = 250; a.hyphen = 333; a.period = 250; a.slash = 278; a.zero = 500; a.one = 500; a.two = 500; a.three = 500; a.four = 500; a.five = 500; a.six = 500; a.seven = 500; a.eight = 500; a.nine = 500; a.colon = 333; a.semicolon = 333; a.less = 675; a.equal = 675; a.greater = 675; a.question = 500; a.at = 920; a.A = 611; a.B = 611; a.C = 667; a.D = 722; a.E = 611; a.F = 611; a.G = 722; a.H = 722; a.I = 333; a.J = 444; a.K = 667; a.L = 556; a.M = 833; a.N = 667; a.O = 722; a.P = 611; a.Q = 722; a.R = 611; a.S = 500; a.T = 556; a.U = 722; a.V = 611; a.W = 833; a.X = 611; a.Y = 556; a.Z = 556; a.bracketleft = 389; a.backslash = 278; a.bracketright = 389; a.asciicircum = 422; a.underscore = 500; a.quoteleft = 333; a.a = 500; a.b = 500; a.c = 444; a.d = 500; a.e = 444; a.f = 278; a.g = 500; a.h = 500; a.i = 278; a.j = 278; a.k = 444; a.l = 278; a.m = 722; a.n = 500; a.o = 500; a.p = 500; a.q = 500; a.r = 389; a.s = 389; a.t = 278; a.u = 500; a.v = 444; a.w = 667; a.x = 444; a.y = 444; a.z = 389; a.braceleft = 400; a.bar = 275; a.braceright = 400; a.asciitilde = 541; a.exclamdown = 389; a.cent = 500; a.sterling = 500; a.fraction = 167; a.yen = 500; a.florin = 500; a.section = 500; a.currency = 500; a.quotesingle = 214; a.quotedblleft = 556; a.guillemotleft = 500; a.guilsinglleft = 333; a.guilsinglright = 333; a.fi = 500; a.fl = 500; a.endash = 500; a.dagger = 500; a.daggerdbl = 500; a.periodcentered = 250; a.paragraph = 523; a.bullet = 350; a.quotesinglbase = 333; a.quotedblbase = 556; a.quotedblright = 556; a.guillemotright = 500; a.ellipsis = 889; a.perthousand = 1E3; a.questiondown = 500; a.grave = 333; a.acute = 333; a.circumflex = 333; a.tilde = 333; a.macron = 333; a.breve = 333; a.dotaccent = 333; a.dieresis = 333; a.ring = 333; a.cedilla = 333; a.hungarumlaut = 333; a.ogonek = 333; a.caron = 333; a.emdash = 889; a.AE = 889; a.ordfeminine = 276; a.Lslash = 556; a.Oslash = 722; a.OE = 944; a.ordmasculine = 310; a.ae = 667; a.dotlessi = 278; a.lslash = 278; a.oslash = 500; a.oe = 667; a.germandbls = 500; a.Idieresis = 333; a.eacute = 444; a.abreve = 500; a.uhungarumlaut = 500; a.ecaron = 444; a.Ydieresis = 556; a.divide = 675; a.Yacute = 556; a.Acircumflex = 611; a.aacute = 500; a.Ucircumflex = 722; a.yacute = 444; a.scommaaccent = 389; a.ecircumflex = 444; a.Uring = 722; a.Udieresis = 722; a.aogonek = 500; a.Uacute = 722; a.uogonek = 500; a.Edieresis = 611; a.Dcroat = 722; a.commaaccent = 250; a.copyright = 760; a.Emacron = 611; a.ccaron = 444; a.aring = 500; a.Ncommaaccent = 667; a.lacute = 278; a.agrave = 500; a.Tcommaaccent = 556; a.Cacute = 667; a.atilde = 500; a.Edotaccent = 611; a.scaron = 389; a.scedilla = 389; a.iacute = 278; a.lozenge = 471; a.Rcaron = 611; a.Gcommaaccent = 722; a.ucircumflex = 500; a.acircumflex = 500; a.Amacron = 611; a.rcaron = 389; a.ccedilla = 444; a.Zdotaccent = 556; a.Thorn = 611; a.Omacron = 722; a.Racute = 611; a.Sacute = 500; a.dcaron = 544; a.Umacron = 722; a.uring = 500; a.threesuperior = 300; a.Ograve = 722; a.Agrave = 611; a.Abreve = 611; a.multiply = 675; a.uacute = 500; a.Tcaron = 556; a.partialdiff = 476; a.ydieresis = 444; a.Nacute = 667; a.icircumflex = 278; a.Ecircumflex = 611; a.adieresis = 500; a.edieresis = 444; a.cacute = 444; a.nacute = 500; a.umacron = 500; a.Ncaron = 667; a.Iacute = 333; a.plusminus = 675; a.brokenbar = 275; a.registered = 760; a.Gbreve = 722; a.Idotaccent = 333; a.summation = 600; a.Egrave = 611; a.racute = 389; a.omacron = 500; a.Zacute = 556; a.Zcaron = 556; a.greaterequal = 549; a.Eth = 722; a.Ccedilla = 667; a.lcommaaccent = 278; a.tcaron = 300; a.eogonek = 444; a.Uogonek = 722; a.Aacute = 611; a.Adieresis = 611; a.egrave = 444; a.zacute = 389; a.iogonek = 278; a.Oacute = 722; a.oacute = 500; a.amacron = 500; a.sacute = 389; a.idieresis = 278; a.Ocircumflex = 722; a.Ugrave = 722; a.Delta = 612; a.thorn = 500; a.twosuperior = 300; a.Odieresis = 722; a.mu = 500; a.igrave = 278; a.ohungarumlaut = 500; a.Eogonek = 611; a.dcroat = 500; a.threequarters = 750; a.Scedilla = 500; a.lcaron = 300; a.Kcommaaccent = 667; a.Lacute = 556; a.trademark = 980; a.edotaccent = 444; a.Igrave = 333; a.Imacron = 333; a.Lcaron = 611; a.onehalf = 750; a.lessequal = 549; a.ocircumflex = 500; a.ntilde = 500; a.Uhungarumlaut = 722; a.Eacute = 611; a.emacron = 444; a.gbreve = 500; a.onequarter = 750; a.Scaron = 500; a.Scommaaccent = 500; a.Ohungarumlaut = 722; a.degree = 400; a.ograve = 500; a.Ccaron = 667; a.ugrave = 500; a.radical = 453; a.Dcaron = 722; a.rcommaaccent = 389; a.Ntilde = 667; a.otilde = 500; a.Rcommaaccent = 611; a.Lcommaaccent = 556; a.Atilde = 611; a.Aogonek = 611; a.Aring = 611; a.Otilde = 722; a.zdotaccent = 389; a.Ecaron = 611; a.Iogonek = 333; a.kcommaaccent = 444; a.minus = 675; a.Icircumflex = 333; a.ncaron = 500; a.tcommaaccent = 278; a.logicalnot = 675; a.odieresis = 500; a.udieresis = 500; a.notequal = 549; a.gcommaaccent = 500; a.eth = 500; a.zcaron = 389; a.ncommaaccent = 500; a.onesuperior = 300; a.imacron = 278; a.Euro = 500 }); a.ZapfDingbats = R(function (a) { a.space = 278; a.a1 = 974; a.a2 = 961; a.a202 = 974; a.a3 = 980; a.a4 = 719; a.a5 = 789; a.a119 = 790; a.a118 = 791; a.a117 = 690; a.a11 = 960; a.a12 = 939; a.a13 = 549; a.a14 = 855; a.a15 = 911; a.a16 = 933; a.a105 = 911; a.a17 = 945; a.a18 = 974; a.a19 = 755; a.a20 = 846; a.a21 = 762; a.a22 = 761; a.a23 = 571; a.a24 = 677; a.a25 = 763; a.a26 = 760; a.a27 = 759; a.a28 = 754; a.a6 = 494; a.a7 = 552; a.a8 = 537; a.a9 = 577; a.a10 = 692; a.a29 = 786; a.a30 = 788; a.a31 = 788; a.a32 = 790; a.a33 = 793; a.a34 = 794; a.a35 = 816; a.a36 = 823; a.a37 = 789; a.a38 = 841; a.a39 = 823; a.a40 = 833; a.a41 = 816; a.a42 = 831; a.a43 = 923; a.a44 = 744; a.a45 = 723; a.a46 = 749; a.a47 = 790; a.a48 = 792; a.a49 = 695; a.a50 = 776; a.a51 = 768; a.a52 = 792; a.a53 = 759; a.a54 = 707; a.a55 = 708; a.a56 = 682; a.a57 = 701; a.a58 = 826; a.a59 = 815; a.a60 = 789; a.a61 = 789; a.a62 = 707; a.a63 = 687; a.a64 = 696; a.a65 = 689; a.a66 = 786; a.a67 = 787; a.a68 = 713; a.a69 = 791; a.a70 = 785; a.a71 = 791; a.a72 = 873; a.a73 = 761; a.a74 = 762; a.a203 = 762; a.a75 = 759; a.a204 = 759; a.a76 = 892; a.a77 = 892; a.a78 = 788; a.a79 = 784; a.a81 = 438; a.a82 = 138; a.a83 = 277; a.a84 = 415; a.a97 = 392; a.a98 = 392; a.a99 = 668; a.a100 = 668; a.a89 = 390; a.a90 = 390; a.a93 = 317; a.a94 = 317; a.a91 = 276; a.a92 = 276; a.a205 = 509; a.a85 = 509; a.a206 = 410; a.a86 = 410; a.a87 = 234; a.a88 = 234; a.a95 = 334; a.a96 = 334; a.a101 = 732; a.a102 = 544; a.a103 = 544; a.a104 = 910; a.a106 = 667; a.a107 = 760; a.a108 = 760; a.a112 = 776; a.a111 = 595; a.a110 = 694; a.a109 = 626; a.a120 = 788; a.a121 = 788; a.a122 = 788; a.a123 = 788; a.a124 = 788; a.a125 = 788; a.a126 = 788; a.a127 = 788; a.a128 = 788; a.a129 = 788; a.a130 = 788; a.a131 = 788; a.a132 = 788; a.a133 = 788; a.a134 = 788; a.a135 = 788; a.a136 = 788; a.a137 = 788; a.a138 = 788; a.a139 = 788; a.a140 = 788; a.a141 = 788; a.a142 = 788; a.a143 = 788; a.a144 = 788; a.a145 = 788; a.a146 = 788; a.a147 = 788; a.a148 = 788; a.a149 = 788; a.a150 = 788; a.a151 = 788; a.a152 = 788; a.a153 = 788; a.a154 = 788; a.a155 = 788; a.a156 = 788; a.a157 = 788; a.a158 = 788; a.a159 = 788; a.a160 = 894; a.a161 = 838; a.a163 = 1016; a.a164 = 458; a.a196 = 748; a.a165 = 924; a.a192 = 748; a.a166 = 918; a.a167 = 927; a.a168 = 928; a.a169 = 928; a.a170 = 834; a.a171 = 873; a.a172 = 828; a.a173 = 924; a.a162 = 924; a.a174 = 917; a.a175 = 930; a.a176 = 931; a.a177 = 463; a.a178 = 883; a.a179 = 836; a.a193 = 836; a.a180 = 867; a.a199 = 867; a.a181 = 696; a.a200 = 696; a.a182 = 874; a.a201 = 874; a.a183 = 760; a.a184 = 946; a.a197 = 771; a.a185 = 865; a.a194 = 771; a.a198 = 888; a.a186 = 967; a.a195 = 888; a.a187 = 831; a.a188 = 873; a.a189 = 927; a.a190 = 970; a.a191 = 918 }) }); e.getMetrics = O }); (function (e, l) { l(e.pdfjsCoreMurmurHash3 = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.Uint32ArrayView, O = function (a) { function b(a) { this.h1 = a ? a & 4294967295 : 3285377520; this.h2 = a ? a & 4294967295 : 3285377520 } var e = !1; try { new Uint32Array((new Uint8Array(5)).buffer, 0, 1) } catch (l) { e = !0 } b.prototype = { update: function (a) { var b = e, l; if ("string" === typeof a) { var O = new Uint8Array(2 * a.length), N = 0; for (l = 0; l < a.length; l++) { var u = a.charCodeAt(l); 255 >= u ? O[N++] = u : (O[N++] = u >>> 8, O[N++] = u & 255) } } else if (a instanceof Uint8Array) O = a, N = O.length; else if ("object" === typeof a && "length" in a) O = a, N = O.length, b = !0; else throw Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array."); a = N >> 2; var N = N - 4 * a, b = b ? new R(O, a) : new Uint32Array(O.buffer, 0, a), G = 0, G = 0, u = this.h1, M = this.h2; for (l = 0; l < a; l++) l & 1 ? (G = b[l], G = 3432918353 * G & 4294901760 | 11601 * G & 65535, G = G << 15 | G >>> 17, G = 461845907 * G & 4294901760 | 13715 * G & 65535, u ^= G, u = u << 13 | u >>> 19, u = 5 * u + 3864292196) : (G = b[l], G = 3432918353 * G & 4294901760 | 11601 * G & 65535, G = G << 15 | G >>> 17, G = 461845907 * G & 4294901760 | 13715 * G & 65535, M ^= G, M = M << 13 | M >>> 19, M = 5 * M + 3864292196); G = 0; switch (N) { case 3: G ^= O[4 * a + 2] << 16; case 2: G ^= O[4 * a + 1] << 8; case 1: G ^= O[4 * a], G = 3432918353 * G & 4294901760 | 11601 * G & 65535, G = G << 15 | G >>> 17, G = 461845907 * G & 4294901760 | 13715 * G & 65535, a & 1 ? u ^= G : M ^= G } this.h1 = u; this.h2 = M; return this }, hexdigest: function () { for (var a = this.h1, b = this.h2, a = a ^ b >>> 1, a = 3981806797 * a & 4294901760 | 36045 * a & 65535, b = 4283543511 * b & 4294901760 | (2950163797 * (b << 16 | a >>> 16) & 4294901760) >>> 16, a = a ^ b >>> 1, a = 444984403 * a & 4294901760 | 60499 * a & 65535, b = 3301882366 * b & 4294901760 | (3120437893 * (b << 16 | a >>> 16) & 4294901760) >>> 16, e = 0, a = [a ^ b >>> 1, b], b = ""; e < a.length; e++) { for (var l = (a[e] >>> 0).toString(16) ; 8 > l.length;) l = "0" + l; b += l } return b } }; return b }(); e.MurmurHash3_64 = O }); (function (e, l) { l(e.pdfjsCorePrimitives = {}, e.pdfjsSharedUtil) })(this, function (e, l) { function R(a) { return a instanceof L } function O(a, b) { if (!(a instanceof k)) return !1; if (!b) return !0; var e = a.get("Type"); return R(e) && e.name === b } function a(a) { return a instanceof I } var b = l.isArray, L = function () { function a(b) { this.name = b } a.prototype = {}; var b = Object.create(null); a.get = function (k) { var e = b[k]; return e ? e : b[k] = new a(k) }; return a }(), Q = function () { function a(b) { this.cmd = b } a.prototype = {}; var b = Object.create(null); a.get = function (k) { var e = b[k]; return e ? e : b[k] = new a(k) }; return a }(), k = function () { function k(a) { this.map = Object.create(null); this.xref = a; this.objId = null; this.__nonSerializable__ = e } var e = function () { return e }; k.prototype = { assignXref: function (a) { this.xref = a }, get: function (a, b, k) { var e, l = this.xref; if ("undefined" !== typeof (e = this.map[a]) || a in this.map || "undefined" === typeof b || "undefined" !== typeof (e = this.map[b]) || b in this.map || "undefined" === typeof k) return l ? l.fetchIfRef(e) : e; e = this.map[k] || null; return l ? l.fetchIfRef(e) : e }, getAsync: function (a, b, k) { var e, l = this.xref; if ("undefined" !== typeof (e = this.map[a]) || a in this.map || "undefined" === typeof b || "undefined" !== typeof (e = this.map[b]) || b in this.map || "undefined" === typeof k) return l ? l.fetchIfRefAsync(e) : Promise.resolve(e); e = this.map[k] || null; return l ? l.fetchIfRefAsync(e) : Promise.resolve(e) }, getArray: function (k, e, l) { k = this.get(k, e, l); e = this.xref; if (!b(k) || !e) return k; k = k.slice(); l = 0; for (var v = k.length; l < v; l++) a(k[l]) && (k[l] = e.fetch(k[l])); return k }, getRaw: function (a) { return this.map[a] }, getKeys: function () { return Object.keys(this.map) }, set: function (a, b) { this.map[a] = b }, has: function (a) { return a in this.map }, forEach: function (a) { for (var b in this.map) a(b, this.get(b)) } }; k.empty = new k(null); k.merge = function (a, b) { for (var e = new k(a), l = 0, r = b.length; l < r; l++) { var G = b[l]; if (O(G)) for (var H in G.map) e.map[H] || (e.map[H] = G.map[H]) } return e }; return k }(), I = function () { function a(b, k) { this.num = b; this.gen = k } a.prototype = { toString: function () { var a = this.num + "R"; 0 !== this.gen && (a += this.gen); return a } }; return a }(), X = function () { function a() { this.dict = Object.create(null) } a.prototype = { has: function (a) { return a.toString() in this.dict }, put: function (a) { this.dict[a.toString()] = !0 }, remove: function (a) { delete this.dict[a.toString()] } }; return a }(), N = function () { function a() { this.dict = Object.create(null) } a.prototype = { get: function (a) { return this.dict[a.toString()] }, has: function (a) { return a.toString() in this.dict }, put: function (a, b) { this.dict[a.toString()] = b }, putAlias: function (a, b) { this.dict[a.toString()] = this.get(b) }, forEach: function (a, b) { for (var k in this.dict) a.call(b, this.dict[k]) }, clear: function () { this.dict = Object.create(null) } }; return a }(); e.Cmd = Q; e.Dict = k; e.Name = L; e.Ref = I; e.RefSet = X; e.RefSetCache = N; e.isCmd = function (a, b) { return a instanceof Q && (void 0 === b || a.cmd === b) }; e.isDict = O; e.isName = R; e.isRef = a; e.isStream = function (a) { return "object" === typeof a && null !== a && void 0 !== a.getBytes } }); (function (e, l) { l(e.pdfjsCoreStandardFonts = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.getLookupTableFactory, O = R(function (a) { a.ArialNarrow = "Helvetica"; a["ArialNarrow-Bold"] = "Helvetica-Bold"; a["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique"; a["ArialNarrow-Italic"] = "Helvetica-Oblique"; a.ArialBlack = "Helvetica"; a["ArialBlack-Bold"] = "Helvetica-Bold"; a["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique"; a["ArialBlack-Italic"] = "Helvetica-Oblique"; a.Arial = "Helvetica"; a["Arial-Bold"] = "Helvetica-Bold"; a["Arial-BoldItalic"] = "Helvetica-BoldOblique"; a["Arial-Italic"] = "Helvetica-Oblique"; a["Arial-BoldItalicMT"] = "Helvetica-BoldOblique"; a["Arial-BoldMT"] = "Helvetica-Bold"; a["Arial-ItalicMT"] = "Helvetica-Oblique"; a.ArialMT = "Helvetica"; a["Courier-Bold"] = "Courier-Bold"; a["Courier-BoldItalic"] = "Courier-BoldOblique"; a["Courier-Italic"] = "Courier-Oblique"; a.CourierNew = "Courier"; a["CourierNew-Bold"] = "Courier-Bold"; a["CourierNew-BoldItalic"] = "Courier-BoldOblique"; a["CourierNew-Italic"] = "Courier-Oblique"; a["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique"; a["CourierNewPS-BoldMT"] = "Courier-Bold"; a["CourierNewPS-ItalicMT"] = "Courier-Oblique"; a.CourierNewPSMT = "Courier"; a.Helvetica = "Helvetica"; a["Helvetica-Bold"] = "Helvetica-Bold"; a["Helvetica-BoldItalic"] = "Helvetica-BoldOblique"; a["Helvetica-BoldOblique"] = "Helvetica-BoldOblique"; a["Helvetica-Italic"] = "Helvetica-Oblique"; a["Helvetica-Oblique"] = "Helvetica-Oblique"; a["Symbol-Bold"] = "Symbol"; a["Symbol-BoldItalic"] = "Symbol"; a["Symbol-Italic"] = "Symbol"; a.TimesNewRoman = "Times-Roman"; a["TimesNewRoman-Bold"] = "Times-Bold"; a["TimesNewRoman-BoldItalic"] = "Times-BoldItalic"; a["TimesNewRoman-Italic"] = "Times-Italic"; a.TimesNewRomanPS = "Times-Roman"; a["TimesNewRomanPS-Bold"] = "Times-Bold"; a["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic"; a["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic"; a["TimesNewRomanPS-BoldMT"] = "Times-Bold"; a["TimesNewRomanPS-Italic"] = "Times-Italic"; a["TimesNewRomanPS-ItalicMT"] = "Times-Italic"; a.TimesNewRomanPSMT = "Times-Roman"; a["TimesNewRomanPSMT-Bold"] = "Times-Bold"; a["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic"; a["TimesNewRomanPSMT-Italic"] = "Times-Italic" }), a = R(function (a) { a.CenturyGothic = "Helvetica"; a["CenturyGothic-Bold"] = "Helvetica-Bold"; a["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique"; a["CenturyGothic-Italic"] = "Helvetica-Oblique"; a.ComicSansMS = "Comic Sans MS"; a["ComicSansMS-Bold"] = "Comic Sans MS-Bold"; a["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic"; a["ComicSansMS-Italic"] = "Comic Sans MS-Italic"; a.LucidaConsole = "Courier"; a["LucidaConsole-Bold"] = "Courier-Bold"; a["LucidaConsole-BoldItalic"] = "Courier-BoldOblique"; a["LucidaConsole-Italic"] = "Courier-Oblique"; a["MS-Gothic"] = "MS Gothic"; a["MS-Gothic-Bold"] = "MS Gothic-Bold"; a["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic"; a["MS-Gothic-Italic"] = "MS Gothic-Italic"; a["MS-Mincho"] = "MS Mincho"; a["MS-Mincho-Bold"] = "MS Mincho-Bold"; a["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic"; a["MS-Mincho-Italic"] = "MS Mincho-Italic"; a["MS-PGothic"] = "MS PGothic"; a["MS-PGothic-Bold"] = "MS PGothic-Bold"; a["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic"; a["MS-PGothic-Italic"] = "MS PGothic-Italic"; a["MS-PMincho"] = "MS PMincho"; a["MS-PMincho-Bold"] = "MS PMincho-Bold"; a["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic"; a["MS-PMincho-Italic"] = "MS PMincho-Italic"; a.Wingdings = "ZapfDingbats" }), b = R(function (a) { a["Adobe Jenson"] = !0; a["Adobe Text"] = !0; a.Albertus = !0; a.Aldus = !0; a.Alexandria = !0; a.Algerian = !0; a["American Typewriter"] = !0; a.Antiqua = !0; a.Apex = !0; a.Arno = !0; a.Aster = !0; a.Aurora = !0; a.Baskerville = !0; a.Bell = !0; a.Bembo = !0; a["Bembo Schoolbook"] = !0; a.Benguiat = !0; a["Berkeley Old Style"] = !0; a["Bernhard Modern"] = !0; a["Berthold City"] = !0; a.Bodoni = !0; a["Bauer Bodoni"] = !0; a["Book Antiqua"] = !0; a.Bookman = !0; a["Bordeaux Roman"] = !0; a["Californian FB"] = !0; a.Calisto = !0; a.Calvert = !0; a.Capitals = !0; a.Cambria = !0; a.Cartier = !0; a.Caslon = !0; a.Catull = !0; a.Centaur = !0; a["Century Old Style"] = !0; a["Century Schoolbook"] = !0; a.Chaparral = !0; a["Charis SIL"] = !0; a.Cheltenham = !0; a["Cholla Slab"] = !0; a.Clarendon = !0; a.Clearface = !0; a.Cochin = !0; a.Colonna = !0; a["Computer Modern"] = !0; a["Concrete Roman"] = !0; a.Constantia = !0; a["Cooper Black"] = !0; a.Corona = !0; a.Ecotype = !0; a.Egyptienne = !0; a.Elephant = !0; a.Excelsior = !0; a.Fairfield = !0; a["FF Scala"] = !0; a.Folkard = !0; a.Footlight = !0; a.FreeSerif = !0; a["Friz Quadrata"] = !0; a.Garamond = !0; a.Gentium = !0; a.Georgia = !0; a.Gloucester = !0; a["Goudy Old Style"] = !0; a["Goudy Schoolbook"] = !0; a["Goudy Pro Font"] = !0; a.Granjon = !0; a["Guardian Egyptian"] = !0; a.Heather = !0; a.Hercules = !0; a["High Tower Text"] = !0; a.Hiroshige = !0; a["Hoefler Text"] = !0; a["Humana Serif"] = !0; a.Imprint = !0; a["Ionic No. 5"] = !0; a.Janson = !0; a.Joanna = !0; a.Korinna = !0; a.Lexicon = !0; a["Liberation Serif"] = !0; a["Linux Libertine"] = !0; a.Literaturnaya = !0; a.Lucida = !0; a["Lucida Bright"] = !0; a.Melior = !0; a.Memphis = !0; a.Miller = !0; a.Minion = !0; a.Modern = !0; a["Mona Lisa"] = !0; a["Mrs Eaves"] = !0; a["MS Serif"] = !0; a["Museo Slab"] = !0; a["New York"] = !0; a["Nimbus Roman"] = !0; a["NPS Rawlinson Roadway"] = !0; a.Palatino = !0; a.Perpetua = !0; a.Plantin = !0; a["Plantin Schoolbook"] = !0; a.Playbill = !0; a["Poor Richard"] = !0; a["Rawlinson Roadway"] = !0; a.Renault = !0; a.Requiem = !0; a.Rockwell = !0; a.Roman = !0; a["Rotis Serif"] = !0; a.Sabon = !0; a.Scala = !0; a.Seagull = !0; a.Sistina = !0; a.Souvenir = !0; a.STIX = !0; a["Stone Informal"] = !0; a["Stone Serif"] = !0; a.Sylfaen = !0; a.Times = !0; a.Trajan = !0; a["Trinit\u00e9"] = !0; a["Trump Mediaeval"] = !0; a.Utopia = !0; a["Vale Type"] = !0; a["Bitstream Vera"] = !0; a["Vera Serif"] = !0; a.Versailles = !0; a.Wanted = !0; a.Weiss = !0; a["Wide Latin"] = !0; a.Windsor = !0; a.XITS = !0 }), L = R(function (a) { a.Dingbats = !0; a.Symbol = !0; a.ZapfDingbats = !0 }), Q = R(function (a) { a[2] = 10; a[3] = 32; a[4] = 33; a[5] = 34; a[6] = 35; a[7] = 36; a[8] = 37; a[9] = 38; a[10] = 39; a[11] = 40; a[12] = 41; a[13] = 42; a[14] = 43; a[15] = 44; a[16] = 45; a[17] = 46; a[18] = 47; a[19] = 48; a[20] = 49; a[21] = 50; a[22] = 51; a[23] = 52; a[24] = 53; a[25] = 54; a[26] = 55; a[27] = 56; a[28] = 57; a[29] = 58; a[30] = 894; a[31] = 60; a[32] = 61; a[33] = 62; a[34] = 63; a[35] = 64; a[36] = 65; a[37] = 66; a[38] = 67; a[39] = 68; a[40] = 69; a[41] = 70; a[42] = 71; a[43] = 72; a[44] = 73; a[45] = 74; a[46] = 75; a[47] = 76; a[48] = 77; a[49] = 78; a[50] = 79; a[51] = 80; a[52] = 81; a[53] = 82; a[54] = 83; a[55] = 84; a[56] = 85; a[57] = 86; a[58] = 87; a[59] = 88; a[60] = 89; a[61] = 90; a[62] = 91; a[63] = 92; a[64] = 93; a[65] = 94; a[66] = 95; a[67] = 96; a[68] = 97; a[69] = 98; a[70] = 99; a[71] = 100; a[72] = 101; a[73] = 102; a[74] = 103; a[75] = 104; a[76] = 105; a[77] = 106; a[78] = 107; a[79] = 108; a[80] = 109; a[81] = 110; a[82] = 111; a[83] = 112; a[84] = 113; a[85] = 114; a[86] = 115; a[87] = 116; a[88] = 117; a[89] = 118; a[90] = 119; a[91] = 120; a[92] = 121; a[93] = 122; a[94] = 123; a[95] = 124; a[96] = 125; a[97] = 126; a[98] = 196; a[99] = 197; a[100] = 199; a[101] = 201; a[102] = 209; a[103] = 214; a[104] = 220; a[105] = 225; a[106] = 224; a[107] = 226; a[108] = 228; a[109] = 227; a[110] = 229; a[111] = 231; a[112] = 233; a[113] = 232; a[114] = 234; a[115] = 235; a[116] = 237; a[117] = 236; a[118] = 238; a[119] = 239; a[120] = 241; a[121] = 243; a[122] = 242; a[123] = 244; a[124] = 246; a[125] = 245; a[126] = 250; a[127] = 249; a[128] = 251; a[129] = 252; a[130] = 8224; a[131] = 176; a[132] = 162; a[133] = 163; a[134] = 167; a[135] = 8226; a[136] = 182; a[137] = 223; a[138] = 174; a[139] = 169; a[140] = 8482; a[141] = 180; a[142] = 168; a[143] = 8800; a[144] = 198; a[145] = 216; a[146] = 8734; a[147] = 177; a[148] = 8804; a[149] = 8805; a[150] = 165; a[151] = 181; a[152] = 8706; a[153] = 8721; a[154] = 8719; a[156] = 8747; a[157] = 170; a[158] = 186; a[159] = 8486; a[160] = 230; a[161] = 248; a[162] = 191; a[163] = 161; a[164] = 172; a[165] = 8730; a[166] = 402; a[167] = 8776; a[168] = 8710; a[169] = 171; a[170] = 187; a[171] = 8230; a[210] = 218; a[223] = 711; a[224] = 321; a[225] = 322; a[227] = 353; a[229] = 382; a[234] = 253; a[252] = 263; a[253] = 268; a[254] = 269; a[258] = 258; a[260] = 260; a[261] = 261; a[265] = 280; a[266] = 281; a[268] = 283; a[269] = 313; a[275] = 323; a[276] = 324; a[278] = 328; a[284] = 345; a[285] = 346; a[286] = 347; a[292] = 367; a[295] = 377; a[296] = 378; a[298] = 380; a[305] = 963; a[306] = 964; a[307] = 966; a[308] = 8215; a[309] = 8252; a[310] = 8319; a[311] = 8359; a[312] = 8592; a[313] = 8593; a[337] = 9552; a[493] = 1039; a[494] = 1040; a[705] = 1524; a[706] = 8362; a[710] = 64288; a[711] = 64298; a[759] = 1617; a[761] = 1776; a[763] = 1778; a[775] = 1652; a[777] = 1764; a[778] = 1780; a[779] = 1781; a[780] = 1782; a[782] = 771; a[783] = 64726; a[786] = 8363; a[788] = 8532; a[790] = 768; a[791] = 769; a[792] = 768; a[795] = 803; a[797] = 64336; a[798] = 64337; a[799] = 64342; a[800] = 64343; a[801] = 64344; a[802] = 64345; a[803] = 64362; a[804] = 64363; a[805] = 64364; a[2424] = 7821; a[2425] = 7822; a[2426] = 7823; a[2427] = 7824; a[2428] = 7825; a[2429] = 7826; a[2430] = 7827; a[2433] = 7682; a[2678] = 8045; a[2679] = 8046; a[2830] = 1552; a[2838] = 686; a[2840] = 751; a[2842] = 753; a[2843] = 754; a[2844] = 755; a[2846] = 757; a[2856] = 767; a[2857] = 848; a[2858] = 849; a[2862] = 853; a[2863] = 854; a[2864] = 855; a[2865] = 861; a[2866] = 862; a[2906] = 7460; a[2908] = 7462; a[2909] = 7463; a[2910] = 7464; a[2912] = 7466; a[2913] = 7467; a[2914] = 7468; a[2916] = 7470; a[2917] = 7471; a[2918] = 7472; a[2920] = 7474; a[2921] = 7475; a[2922] = 7476; a[2924] = 7478; a[2925] = 7479; a[2926] = 7480; a[2928] = 7482; a[2929] = 7483; a[2930] = 7484; a[2932] = 7486; a[2933] = 7487; a[2934] = 7488; a[2936] = 7490; a[2937] = 7491; a[2938] = 7492; a[2940] = 7494; a[2941] = 7495; a[2942] = 7496; a[2944] = 7498; a[2946] = 7500; a[2948] = 7502; a[2950] = 7504; a[2951] = 7505; a[2952] = 7506; a[2954] = 7508; a[2955] = 7509; a[2956] = 7510; a[2958] = 7512; a[2959] = 7513; a[2960] = 7514; a[2962] = 7516; a[2963] = 7517; a[2964] = 7518; a[2966] = 7520; a[2967] = 7521; a[2968] = 7522; a[2970] = 7524; a[2971] = 7525; a[2972] = 7526; a[2974] = 7528; a[2975] = 7529; a[2976] = 7530; a[2978] = 1537; a[2979] = 1538; a[2980] = 1539; a[2982] = 1549; a[2983] = 1551; a[2984] = 1552; a[2986] = 1554; a[2987] = 1555; a[2988] = 1556; a[2990] = 1623; a[2991] = 1624; a[2995] = 1775; a[2999] = 1791; a[3002] = 64290; a[3003] = 64291; a[3004] = 64292; a[3006] = 64294; a[3007] = 64295; a[3008] = 64296; a[3011] = 1900; a[3014] = 8223; a[3015] = 8244; a[3017] = 7532; a[3018] = 7533; a[3019] = 7534; a[3075] = 7590; a[3076] = 7591; a[3079] = 7594; a[3080] = 7595; a[3083] = 7598; a[3084] = 7599; a[3087] = 7602; a[3088] = 7603; a[3091] = 7606; a[3092] = 7607; a[3095] = 7610; a[3096] = 7611; a[3099] = 7614; a[3100] = 7615; a[3103] = 7618; a[3104] = 7619; a[3107] = 8337; a[3108] = 8338; a[3116] = 1884; a[3119] = 1885; a[3120] = 1885; a[3123] = 1886; a[3124] = 1886; a[3127] = 1887; a[3128] = 1887; a[3131] = 1888; a[3132] = 1888; a[3135] = 1889; a[3136] = 1889; a[3139] = 1890; a[3140] = 1890; a[3143] = 1891; a[3144] = 1891; a[3147] = 1892; a[3148] = 1892; a[3153] = 580; a[3154] = 581; a[3157] = 584; a[3158] = 585; a[3161] = 588; a[3162] = 589; a[3165] = 891; a[3166] = 892; a[3169] = 1274; a[3170] = 1275; a[3173] = 1278; a[3174] = 1279; a[3181] = 7622; a[3182] = 7623; a[3282] = 11799; a[3316] = 578; a[3379] = 42785; a[3393] = 1159; a[3416] = 8377 }), R = R(function (a) { a[227] = 322; a[264] = 261; a[291] = 346 }); e.getStdFontMap = O; e.getNonStdFontMap = a; e.getSerifFonts = b; e.getSymbolsFonts = L; e.getGlyphMapForStandardFonts = Q; e.getSupplementalGlyphMapForArialBlack = R }); (function (e, l) { l(e.pdfjsCoreUnicode = {}, e.pdfjsSharedUtil) })(this, function (e, l) { var R = l.getLookupTableFactory, O = R(function (a) { a[63721] = 169; a[63193] = 169; a[63720] = 174; a[63194] = 174; a[63722] = 8482; a[63195] = 8482; a[63729] = 9127; a[63730] = 9128; a[63731] = 9129; a[63740] = 9131; a[63741] = 9132; a[63742] = 9133; a[63726] = 9121; a[63727] = 9122; a[63728] = 9123; a[63737] = 9124; a[63738] = 9125; a[63739] = 9126; a[63723] = 9115; a[63724] = 9116; a[63725] = 9117; a[63734] = 9118; a[63735] = 9119; a[63736] = 9120 }), a = [{ begin: 0, end: 127 }, { begin: 128, end: 255 }, { begin: 256, end: 383 }, { begin: 384, end: 591 }, { begin: 592, end: 687 }, { begin: 688, end: 767 }, { begin: 768, end: 879 }, { begin: 880, end: 1023 }, { begin: 11392, end: 11519 }, { begin: 1024, end: 1279 }, { begin: 1328, end: 1423 }, { begin: 1424, end: 1535 }, { begin: 42240, end: 42559 }, { begin: 1536, end: 1791 }, { begin: 1984, end: 2047 }, { begin: 2304, end: 2431 }, { begin: 2432, end: 2559 }, { begin: 2560, end: 2687 }, { begin: 2688, end: 2815 }, { begin: 2816, end: 2943 }, { begin: 2944, end: 3071 }, { begin: 3072, end: 3199 }, { begin: 3200, end: 3327 }, { begin: 3328, end: 3455 }, { begin: 3584, end: 3711 }, { begin: 3712, end: 3839 }, { begin: 4256, end: 4351 }, { begin: 6912, end: 7039 }, { begin: 4352, end: 4607 }, { begin: 7680, end: 7935 }, { begin: 7936, end: 8191 }, { begin: 8192, end: 8303 }, { begin: 8304, end: 8351 }, { begin: 8352, end: 8399 }, { begin: 8400, end: 8447 }, { begin: 8448, end: 8527 }, { begin: 8528, end: 8591 }, { begin: 8592, end: 8703 }, { begin: 8704, end: 8959 }, { begin: 8960, end: 9215 }, { begin: 9216, end: 9279 }, { begin: 9280, end: 9311 }, { begin: 9312, end: 9471 }, { begin: 9472, end: 9599 }, { begin: 9600, end: 9631 }, { begin: 9632, end: 9727 }, { begin: 9728, end: 9983 }, { begin: 9984, end: 10175 }, { begin: 12288, end: 12351 }, { begin: 12352, end: 12447 }, { begin: 12448, end: 12543 }, { begin: 12544, end: 12591 }, { begin: 12592, end: 12687 }, { begin: 43072, end: 43135 }, { begin: 12800, end: 13055 }, { begin: 13056, end: 13311 }, { begin: 44032, end: 55215 }, { begin: 55296, end: 57343 }, { begin: 67840, end: 67871 }, { begin: 19968, end: 40959 }, { begin: 57344, end: 63743 }, { begin: 12736, end: 12783 }, { begin: 64256, end: 64335 }, { begin: 64336, end: 65023 }, { begin: 65056, end: 65071 }, { begin: 65040, end: 65055 }, { begin: 65104, end: 65135 }, { begin: 65136, end: 65279 }, { begin: 65280, end: 65519 }, { begin: 65520, end: 65535 }, { begin: 3840, end: 4095 }, { begin: 1792, end: 1871 }, { begin: 1920, end: 1983 }, { begin: 3456, end: 3583 }, { begin: 4096, end: 4255 }, { begin: 4608, end: 4991 }, { begin: 5024, end: 5119 }, { begin: 5120, end: 5759 }, { begin: 5760, end: 5791 }, { begin: 5792, end: 5887 }, { begin: 6016, end: 6143 }, { begin: 6144, end: 6319 }, { begin: 10240, end: 10495 }, { begin: 40960, end: 42127 }, { begin: 5888, end: 5919 }, { begin: 66304, end: 66351 }, { begin: 66352, end: 66383 }, { begin: 66560, end: 66639 }, { begin: 118784, end: 119039 }, { begin: 119808, end: 120831 }, { begin: 1044480, end: 1048573 }, { begin: 65024, end: 65039 }, { begin: 917504, end: 917631 }, { begin: 6400, end: 6479 }, { begin: 6480, end: 6527 }, { begin: 6528, end: 6623 }, { begin: 6656, end: 6687 }, { begin: 11264, end: 11359 }, { begin: 11568, end: 11647 }, { begin: 19904, end: 19967 }, { begin: 43008, end: 43055 }, { begin: 65536, end: 65663 }, { begin: 65856, end: 65935 }, { begin: 66432, end: 66463 }, { begin: 66464, end: 66527 }, { begin: 66640, end: 66687 }, { begin: 66688, end: 66735 }, { begin: 67584, end: 67647 }, { begin: 68096, end: 68191 }, { begin: 119552, end: 119647 }, { begin: 73728, end: 74751 }, { begin: 119648, end: 119679 }, { begin: 7040, end: 7103 }, { begin: 7168, end: 7247 }, { begin: 7248, end: 7295 }, { begin: 43136, end: 43231 }, { begin: 43264, end: 43311 }, { begin: 43312, end: 43359 }, { begin: 43520, end: 43615 }, { begin: 65936, end: 65999 }, { begin: 66E3, end: 66047 }, { begin: 66208, end: 66271 }, { begin: 127024, end: 127135 }], R = R(function (a) { a["\u00a8"] = " \u0308"; a["\u00af"] = " \u0304"; a["\u00b4"] = " \u0301"; a["\u00b5"] = "\u03bc"; a["\u00b8"] = " \u0327"; a["\u0132"] = "IJ"; a["\u0133"] = "ij"; a["\u013f"] = "L\u00b7"; a["\u0140"] = "l\u00b7"; a["\u0149"] = "\u02bcn"; a["\u017f"] = "s"; a["\u01c4"] = "D\u017d"; a["\u01c5"] = "D\u017e"; a["\u01c6"] = "d\u017e"; a["\u01c7"] = "LJ"; a["\u01c8"] = "Lj"; a["\u01c9"] = "lj"; a["\u01ca"] = "NJ"; a["\u01cb"] = "Nj"; a["\u01cc"] = "nj"; a["\u01f1"] = "DZ"; a["\u01f2"] = "Dz"; a["\u01f3"] = "dz"; a["\u02d8"] = " \u0306"; a["\u02d9"] = " \u0307"; a["\u02da"] = " \u030a"; a["\u02db"] = " \u0328"; a["\u02dc"] = " \u0303"; a["\u02dd"] = " \u030b"; a["\u037a"] = " \u0345"; a["\u0384"] = " \u0301"; a["\u03d0"] = "\u03b2"; a["\u03d1"] = "\u03b8"; a["\u03d2"] = "\u03a5"; a["\u03d5"] = "\u03c6"; a["\u03d6"] = "\u03c0"; a["\u03f0"] = "\u03ba"; a["\u03f1"] = "\u03c1"; a["\u03f2"] = "\u03c2"; a["\u03f4"] = "\u0398"; a["\u03f5"] = "\u03b5"; a["\u03f9"] = "\u03a3"; a["\u0587"] = "\u0565\u0582"; a["\u0675"] = "\u0627\u0674"; a["\u0676"] = "\u0648\u0674"; a["\u0677"] = "\u06c7\u0674"; a["\u0678"] = "\u064a\u0674"; a["\u0e33"] = "\u0e4d\u0e32"; a["\u0eb3"] = "\u0ecd\u0eb2"; a["\u0edc"] = "\u0eab\u0e99"; a["\u0edd"] = "\u0eab\u0ea1"; a["\u0f77"] = "\u0fb2\u0f81"; a["\u0f79"] = "\u0fb3\u0f81"; a["\u1e9a"] = "a\u02be"; a["\u1fbd"] = " \u0313"; a["\u1fbf"] = " \u0313"; a["\u1fc0"] = " \u0342"; a["\u1ffe"] = " \u0314"; a["\u2002"] = " "; a["\u2003"] = " "; a["\u2004"] = " "; a["\u2005"] = " "; a["\u2006"] = " "; a["\u2008"] = " "; a["\u2009"] = " "; a["\u200a"] = " "; a["\u2017"] = " \u0333"; a["\u2024"] = "."; a["\u2025"] = ".."; a["\u2026"] = "..."; a["\u2033"] = "\u2032\u2032"; a["\u2034"] = "\u2032\u2032\u2032"; a["\u2036"] = "\u2035\u2035"; a["\u2037"] = "\u2035\u2035\u2035"; a["\u203c"] = "!!"; a["\u203e"] = " \u0305"; a["\u2047"] = "??"; a["\u2048"] = "?!"; a["\u2049"] = "!?"; a["\u2057"] = "\u2032\u2032\u2032\u2032"; a["\u205f"] = " "; a["\u20a8"] = "Rs"; a["\u2100"] = "a/c"; a["\u2101"] = "a/s"; a["\u2103"] = "\u00b0C"; a["\u2105"] = "c/o"; a["\u2106"] = "c/u"; a["\u2107"] = "\u0190"; a["\u2109"] = "\u00b0F"; a["\u2116"] = "No"; a["\u2121"] = "TEL"; a["\u2135"] = "\u05d0"; a["\u2136"] = "\u05d1"; a["\u2137"] = "\u05d2"; a["\u2138"] = "\u05d3"; a["\u213b"] = "FAX"; a["\u2160"] = "I"; a["\u2161"] = "II"; a["\u2162"] = "III"; a["\u2163"] = "IV"; a["\u2164"] = "V"; a["\u2165"] = "VI"; a["\u2166"] = "VII"; a["\u2167"] = "VIII"; a["\u2168"] = "IX"; a["\u2169"] = "X"; a["\u216a"] = "XI"; a["\u216b"] = "XII"; a["\u216c"] = "L"; a["\u216d"] = "C"; a["\u216e"] = "D"; a["\u216f"] = "M"; a["\u2170"] = "i"; a["\u2171"] = "ii"; a["\u2172"] = "iii"; a["\u2173"] = "iv"; a["\u2174"] = "v"; a["\u2175"] = "vi"; a["\u2176"] = "vii"; a["\u2177"] = "viii"; a["\u2178"] = "ix"; a["\u2179"] = "x"; a["\u217a"] = "xi"; a["\u217b"] = "xii"; a["\u217c"] = "l"; a["\u217d"] = "c"; a["\u217e"] = "d"; a["\u217f"] = "m"; a["\u222c"] = "\u222b\u222b"; a["\u222d"] = "\u222b\u222b\u222b"; a["\u222f"] = "\u222e\u222e"; a["\u2230"] = "\u222e\u222e\u222e"; a["\u2474"] = "(1)"; a["\u2475"] = "(2)"; a["\u2476"] = "(3)"; a["\u2477"] = "(4)"; a["\u2478"] = "(5)"; a["\u2479"] = "(6)"; a["\u247a"] = "(7)"; a["\u247b"] = "(8)"; a["\u247c"] = "(9)"; a["\u247d"] = "(10)"; a["\u247e"] = "(11)"; a["\u247f"] = "(12)"; a["\u2480"] = "(13)"; a["\u2481"] = "(14)"; a["\u2482"] = "(15)"; a["\u2483"] = "(16)"; a["\u2484"] = "(17)"; a["\u2485"] = "(18)"; a["\u2486"] = "(19)"; a["\u2487"] = "(20)"; a["\u2488"] = "1."; a["\u2489"] = "2."; a["\u248a"] = "3."; a["\u248b"] = "4."; a["\u248c"] = "5."; a["\u248d"] = "6."; a["\u248e"] = "7."; a["\u248f"] = "8."; a["\u2490"] = "9."; a["\u2491"] = "10."; a["\u2492"] = "11."; a["\u2493"] = "12."; a["\u2494"] = "13."; a["\u2495"] = "14."; a["\u2496"] = "15."; a["\u2497"] = "16."; a["\u2498"] = "17."; a["\u2499"] = "18."; a["\u249a"] = "19."; a["\u249b"] = "20."; a["\u249c"] = "(a)"; a["\u249d"] = "(b)"; a["\u249e"] = "(c)"; a["\u249f"] = "(d)"; a["\u24a0"] = "(e)"; a["\u24a1"] = "(f)"; a["\u24a2"] = "(g)"; a["\u24a3"] = "(h)"; a["\u24a4"] = "(i)"; a["\u24a5"] = "(j)"; a["\u24a6"] = "(k)"; a["\u24a7"] = "(l)"; a["\u24a8"] = "(m)"; a["\u24a9"] = "(n)"; a["\u24aa"] = "(o)"; a["\u24ab"] = "(p)"; a["\u24ac"] = "(q)"; a["\u24ad"] = "(r)"; a["\u24ae"] = "(s)"; a["\u24af"] = "(t)"; a["\u24b0"] = "(u)"; a["\u24b1"] = "(v)"; a["\u24b2"] = "(w)"; a["\u24b3"] = "(x)"; a["\u24b4"] = "(y)"; a["\u24b5"] = "(z)"; a["\u2a0c"] = "\u222b\u222b\u222b\u222b"; a["\u2a74"] = "::="; a["\u2a75"] = "=="; a["\u2a76"] = "==="; a["\u2e9f"] = "\u6bcd"; a["\u2ef3"] = "\u9f9f"; a["\u2f00"] = "\u4e00"; a["\u2f01"] = "\u4e28"; a["\u2f02"] = "\u4e36"; a["\u2f03"] = "\u4e3f"; a["\u2f04"] = "\u4e59"; a["\u2f05"] = "\u4e85"; a["\u2f06"] = "\u4e8c"; a["\u2f07"] = "\u4ea0"; a["\u2f08"] = "\u4eba"; a["\u2f09"] = "\u513f"; a["\u2f0a"] = "\u5165"; a["\u2f0b"] = "\u516b"; a["\u2f0c"] = "\u5182"; a["\u2f0d"] = "\u5196"; a["\u2f0e"] = "\u51ab"; a["\u2f0f"] = "\u51e0"; a["\u2f10"] = "\u51f5"; a["\u2f11"] = "\u5200"; a["\u2f12"] = "\u529b"; a["\u2f13"] = "\u52f9"; a["\u2f14"] = "\u5315"; a["\u2f15"] = "\u531a"; a["\u2f16"] = "\u5338"; a["\u2f17"] = "\u5341"; a["\u2f18"] = "\u535c"; a["\u2f19"] = "\u5369"; a["\u2f1a"] = "\u5382"; a["\u2f1b"] = "\u53b6"; a["\u2f1c"] = "\u53c8"; a["\u2f1d"] = "\u53e3"; a["\u2f1e"] = "\u56d7"; a["\u2f1f"] = "\u571f"; a["\u2f20"] = "\u58eb"; a["\u2f21"] = "\u5902"; a["\u2f22"] = "\u590a"; a["\u2f23"] = "\u5915"; a["\u2f24"] = "\u5927"; a["\u2f25"] = "\u5973"; a["\u2f26"] = "\u5b50"; a["\u2f27"] = "\u5b80"; a["\u2f28"] = "\u5bf8"; a["\u2f29"] = "\u5c0f"; a["\u2f2a"] = "\u5c22"; a["\u2f2b"] = "\u5c38"; a["\u2f2c"] = "\u5c6e"; a["\u2f2d"] = "\u5c71"; a["\u2f2e"] = "\u5ddb"; a["\u2f2f"] = "\u5de5"; a["\u2f30"] = "\u5df1"; a["\u2f31"] = "\u5dfe"; a["\u2f32"] = "\u5e72"; a["\u2f33"] = "\u5e7a"; a["\u2f34"] = "\u5e7f"; a["\u2f35"] = "\u5ef4"; a["\u2f36"] = "\u5efe"; a["\u2f37"] = "\u5f0b"; a["\u2f38"] = "\u5f13"; a["\u2f39"] = "\u5f50"; a["\u2f3a"] = "\u5f61"; a["\u2f3b"] = "\u5f73"; a["\u2f3c"] = "\u5fc3"; a["\u2f3d"] = "\u6208"; a["\u2f3e"] = "\u6236"; a["\u2f3f"] = "\u624b"; a["\u2f40"] = "\u652f"; a["\u2f41"] = "\u6534"; a["\u2f42"] = "\u6587"; a["\u2f43"] = "\u6597"; a["\u2f44"] = "\u65a4"; a["\u2f45"] = "\u65b9"; a["\u2f46"] = "\u65e0"; a["\u2f47"] = "\u65e5"; a["\u2f48"] = "\u66f0"; a["\u2f49"] = "\u6708"; a["\u2f4a"] = "\u6728"; a["\u2f4b"] = "\u6b20"; a["\u2f4c"] = "\u6b62"; a["\u2f4d"] = "\u6b79"; a["\u2f4e"] = "\u6bb3"; a["\u2f4f"] = "\u6bcb"; a["\u2f50"] = "\u6bd4"; a["\u2f51"] = "\u6bdb"; a["\u2f52"] = "\u6c0f"; a["\u2f53"] = "\u6c14"; a["\u2f54"] = "\u6c34"; a["\u2f55"] = "\u706b"; a["\u2f56"] = "\u722a"; a["\u2f57"] = "\u7236"; a["\u2f58"] = "\u723b"; a["\u2f59"] = "\u723f"; a["\u2f5a"] = "\u7247"; a["\u2f5b"] = "\u7259"; a["\u2f5c"] = "\u725b"; a["\u2f5d"] = "\u72ac"; a["\u2f5e"] = "\u7384"; a["\u2f5f"] = "\u7389"; a["\u2f60"] = "\u74dc"; a["\u2f61"] = "\u74e6"; a["\u2f62"] = "\u7518"; a["\u2f63"] = "\u751f"; a["\u2f64"] = "\u7528"; a["\u2f65"] = "\u7530"; a["\u2f66"] = "\u758b"; a["\u2f67"] = "\u7592"; a["\u2f68"] = "\u7676"; a["\u2f69"] = "\u767d"; a["\u2f6a"] = "\u76ae"; a["\u2f6b"] = "\u76bf"; a["\u2f6c"] = "\u76ee"; a["\u2f6d"] = "\u77db"; a["\u2f6e"] = "\u77e2"; a["\u2f6f"] = "\u77f3"; a["\u2f70"] = "\u793a"; a["\u2f71"] = "\u79b8"; a["\u2f72"] = "\u79be"; a["\u2f73"] = "\u7a74"; a["\u2f74"] = "\u7acb"; a["\u2f75"] = "\u7af9"; a["\u2f76"] = "\u7c73"; a["\u2f77"] = "\u7cf8"; a["\u2f78"] = "\u7f36"; a["\u2f79"] = "\u7f51"; a["\u2f7a"] = "\u7f8a"; a["\u2f7b"] = "\u7fbd"; a["\u2f7c"] = "\u8001"; a["\u2f7d"] = "\u800c"; a["\u2f7e"] = "\u8012"; a["\u2f7f"] = "\u8033"; a["\u2f80"] = "\u807f"; a["\u2f81"] = "\u8089"; a["\u2f82"] = "\u81e3"; a["\u2f83"] = "\u81ea"; a["\u2f84"] = "\u81f3"; a["\u2f85"] = "\u81fc"; a["\u2f86"] = "\u820c"; a["\u2f87"] = "\u821b"; a["\u2f88"] = "\u821f"; a["\u2f89"] = "\u826e"; a["\u2f8a"] = "\u8272"; a["\u2f8b"] = "\u8278"; a["\u2f8c"] = "\u864d"; a["\u2f8d"] = "\u866b"; a["\u2f8e"] = "\u8840"; a["\u2f8f"] = "\u884c"; a["\u2f90"] = "\u8863"; a["\u2f91"] = "\u897e"; a["\u2f92"] = "\u898b"; a["\u2f93"] = "\u89d2"; a["\u2f94"] = "\u8a00"; a["\u2f95"] = "\u8c37"; a["\u2f96"] = "\u8c46"; a["\u2f97"] = "\u8c55"; a["\u2f98"] = "\u8c78"; a["\u2f99"] = "\u8c9d"; a["\u2f9a"] = "\u8d64"; a["\u2f9b"] = "\u8d70"; a["\u2f9c"] = "\u8db3"; a["\u2f9d"] = "\u8eab"; a["\u2f9e"] = "\u8eca"; a["\u2f9f"] = "\u8f9b"; a["\u2fa0"] = "\u8fb0"; a["\u2fa1"] = "\u8fb5"; a["\u2fa2"] = "\u9091"; a["\u2fa3"] = "\u9149"; a["\u2fa4"] = "\u91c6"; a["\u2fa5"] = "\u91cc"; a["\u2fa6"] = "\u91d1"; a["\u2fa7"] = "\u9577"; a["\u2fa8"] = "\u9580"; a["\u2fa9"] = "\u961c"; a["\u2faa"] = "\u96b6"; a["\u2fab"] = "\u96b9"; a["\u2fac"] = "\u96e8"; a["\u2fad"] = "\u9751"; a["\u2fae"] = "\u975e"; a["\u2faf"] = "\u9762"; a["\u2fb0"] = "\u9769"; a["\u2fb1"] = "\u97cb"; a["\u2fb2"] = "\u97ed"; a["\u2fb3"] = "\u97f3"; a["\u2fb4"] = "\u9801"; a["\u2fb5"] = "\u98a8"; a["\u2fb6"] = "\u98db"; a["\u2fb7"] = "\u98df"; a["\u2fb8"] = "\u9996"; a["\u2fb9"] = "\u9999"; a["\u2fba"] = "\u99ac"; a["\u2fbb"] = "\u9aa8"; a["\u2fbc"] = "\u9ad8"; a["\u2fbd"] = "\u9adf"; a["\u2fbe"] = "\u9b25"; a["\u2fbf"] = "\u9b2f"; a["\u2fc0"] = "\u9b32"; a["\u2fc1"] = "\u9b3c"; a["\u2fc2"] = "\u9b5a"; a["\u2fc3"] = "\u9ce5"; a["\u2fc4"] = "\u9e75"; a["\u2fc5"] = "\u9e7f"; a["\u2fc6"] = "\u9ea5"; a["\u2fc7"] = "\u9ebb"; a["\u2fc8"] = "\u9ec3"; a["\u2fc9"] = "\u9ecd"; a["\u2fca"] = "\u9ed1"; a["\u2fcb"] = "\u9ef9"; a["\u2fcc"] = "\u9efd"; a["\u2fcd"] = "\u9f0e"; a["\u2fce"] = "\u9f13"; a["\u2fcf"] = "\u9f20"; a["\u2fd0"] = "\u9f3b"; a["\u2fd1"] = "\u9f4a"; a["\u2fd2"] = "\u9f52"; a["\u2fd3"] = "\u9f8d"; a["\u2fd4"] = "\u9f9c"; a["\u2fd5"] = "\u9fa0"; a["\u3036"] = "\u3012"; a["\u3038"] = "\u5341"; a["\u3039"] = "\u5344"; a["\u303a"] = "\u5345"; a["\u309b"] = " \u3099"; a["\u309c"] = " \u309a"; a["\u3131"] = "\u1100"; a["\u3132"] = "\u1101"; a["\u3133"] = "\u11aa"; a["\u3134"] = "\u1102"; a["\u3135"] = "\u11ac"; a["\u3136"] = "\u11ad"; a["\u3137"] = "\u1103"; a["\u3138"] = "\u1104"; a["\u3139"] = "\u1105"; a["\u313a"] = "\u11b0"; a["\u313b"] = "\u11b1"; a["\u313c"] = "\u11b2"; a["\u313d"] = "\u11b3"; a["\u313e"] = "\u11b4"; a["\u313f"] = "\u11b5"; a["\u3140"] = "\u111a"; a["\u3141"] = "\u1106"; a["\u3142"] = "\u1107"; a["\u3143"] = "\u1108"; a["\u3144"] = "\u1121"; a["\u3145"] = "\u1109"; a["\u3146"] = "\u110a"; a["\u3147"] = "\u110b"; a["\u3148"] = "\u110c"; a["\u3149"] = "\u110d"; a["\u314a"] = "\u110e"; a["\u314b"] = "\u110f"; a["\u314c"] = "\u1110"; a["\u314d"] = "\u1111"; a["\u314e"] = "\u1112"; a["\u314f"] = "\u1161"; a["\u3150"] = "\u1162"; a["\u3151"] = "\u1163"; a["\u3152"] = "\u1164"; a["\u3153"] = "\u1165"; a["\u3154"] = "\u1166"; a["\u3155"] = "\u1167"; a["\u3156"] = "\u1168"; a["\u3157"] = "\u1169"; a["\u3158"] = "\u116a"; a["\u3159"] = "\u116b"; a["\u315a"] = "\u116c"; a["\u315b"] = "\u116d"; a["\u315c"] = "\u116e"; a["\u315d"] = "\u116f"; a["\u315e"] = "\u1170"; a["\u315f"] = "\u1171"; a["\u3160"] = "\u1172"; a["\u3161"] = "\u1173"; a["\u3162"] = "\u1174"; a["\u3163"] = "\u1175"; a["\u3164"] = "\u1160"; a["\u3165"] = "\u1114"; a["\u3166"] = "\u1115"; a["\u3167"] = "\u11c7"; a["\u3168"] = "\u11c8"; a["\u3169"] = "\u11cc"; a["\u316a"] = "\u11ce"; a["\u316b"] = "\u11d3"; a["\u316c"] = "\u11d7"; a["\u316d"] = "\u11d9"; a["\u316e"] = "\u111c"; a["\u316f"] = "\u11dd"; a["\u3170"] = "\u11df"; a["\u3171"] = "\u111d"; a["\u3172"] = "\u111e"; a["\u3173"] = "\u1120"; a["\u3174"] = "\u1122"; a["\u3175"] = "\u1123"; a["\u3176"] = "\u1127"; a["\u3177"] = "\u1129"; a["\u3178"] = "\u112b"; a["\u3179"] = "\u112c"; a["\u317a"] = "\u112d"; a["\u317b"] = "\u112e"; a["\u317c"] = "\u112f"; a["\u317d"] = "\u1132"; a["\u317e"] = "\u1136"; a["\u317f"] = "\u1140"; a["\u3180"] = "\u1147"; a["\u3181"] = "\u114c"; a["\u3182"] = "\u11f1"; a["\u3183"] = "\u11f2"; a["\u3184"] = "\u1157"; a["\u3185"] = "\u1158"; a["\u3186"] = "\u1159"; a["\u3187"] = "\u1184"; a["\u3188"] = "\u1185"; a["\u3189"] = "\u1188"; a["\u318a"] = "\u1191"; a["\u318b"] = "\u1192"; a["\u318c"] = "\u1194"; a["\u318d"] = "\u119e"; a["\u318e"] = "\u11a1"; a["\u3200"] = "(\u1100)"; a["\u3201"] = "(\u1102)"; a["\u3202"] = "(\u1103)"; a["\u3203"] = "(\u1105)"; a["\u3204"] = "(\u1106)"; a["\u3205"] = "(\u1107)"; a["\u3206"] = "(\u1109)"; a["\u3207"] = "(\u110b)"; a["\u3208"] = "(\u110c)"; a["\u3209"] = "(\u110e)"; a["\u320a"] = "(\u110f)"; a["\u320b"] = "(\u1110)"; a["\u320c"] = "(\u1111)"; a["\u320d"] = "(\u1112)"; a["\u320e"] = "(\u1100\u1161)"; a["\u320f"] = "(\u1102\u1161)"; a["\u3210"] = "(\u1103\u1161)"; a["\u3211"] = "(\u1105\u1161)"; a["\u3212"] = "(\u1106\u1161)"; a["\u3213"] = "(\u1107\u1161)"; a["\u3214"] = "(\u1109\u1161)"; a["\u3215"] = "(\u110b\u1161)"; a["\u3216"] = "(\u110c\u1161)"; a["\u3217"] = "(\u110e\u1161)"; a["\u3218"] = "(\u110f\u1161)"; a["\u3219"] = "(\u1110\u1161)"; a["\u321a"] = "(\u1111\u1161)"; a["\u321b"] = "(\u1112\u1161)"; a["\u321c"] = "(\u110c\u116e)"; a["\u321d"] = "(\u110b\u1169\u110c\u1165\u11ab)"; a["\u321e"] = "(\u110b\u1169\u1112\u116e)"; a["\u3220"] = "(\u4e00)"; a["\u3221"] = "(\u4e8c)"; a["\u3222"] = "(\u4e09)"; a["\u3223"] = "(\u56db)"; a["\u3224"] = "(\u4e94)"; a["\u3225"] = "(\u516d)"; a["\u3226"] = "(\u4e03)"; a["\u3227"] = "(\u516b)"; a["\u3228"] = "(\u4e5d)"; a["\u3229"] = "(\u5341)"; a["\u322a"] = "(\u6708)"; a["\u322b"] = "(\u706b)"; a["\u322c"] = "(\u6c34)"; a["\u322d"] = "(\u6728)"; a["\u322e"] = "(\u91d1)"; a["\u322f"] = "(\u571f)"; a["\u3230"] = "(\u65e5)"; a["\u3231"] = "(\u682a)"; a["\u3232"] = "(\u6709)"; a["\u3233"] = "(\u793e)"; a["\u3234"] = "(\u540d)"; a["\u3235"] = "(\u7279)"; a["\u3236"] = "(\u8ca1)"; a["\u3237"] = "(\u795d)"; a["\u3238"] = "(\u52b4)"; a["\u3239"] = "(\u4ee3)"; a["\u323a"] = "(\u547c)"; a["\u323b"] = "(\u5b66)"; a["\u323c"] = "(\u76e3)"; a["\u323d"] = "(\u4f01)"; a["\u323e"] = "(\u8cc7)"; a["\u323f"] = "(\u5354)"; a["\u3240"] = "(\u796d)"; a["\u3241"] = "(\u4f11)"; a["\u3242"] = "(\u81ea)"; a["\u3243"] = "(\u81f3)"; a["\u32c0"] = "1\u6708"; a["\u32c1"] = "2\u6708"; a["\u32c2"] = "3\u6708"; a["\u32c3"] = "4\u6708"; a["\u32c4"] = "5\u6708"; a["\u32c5"] = "6\u6708"; a["\u32c6"] = "7\u6708"; a["\u32c7"] = "8\u6708"; a["\u32c8"] = "9\u6708"; a["\u32c9"] = "10\u6708"; a["\u32ca"] = "11\u6708"; a["\u32cb"] = "12\u6708"; a["\u3358"] = "0\u70b9"; a["\u3359"] = "1\u70b9"; a["\u335a"] = "2\u70b9"; a["\u335b"] = "3\u70b9"; a["\u335c"] = "4\u70b9"; a["\u335d"] = "5\u70b9"; a["\u335e"] = "6\u70b9"; a["\u335f"] = "7\u70b9"; a["\u3360"] = "8\u70b9"; a["\u3361"] = "9\u70b9"; a["\u3362"] = "10\u70b9"; a["\u3363"] = "11\u70b9"; a["\u3364"] = "12\u70b9"; a["\u3365"] = "13\u70b9"; a["\u3366"] = "14\u70b9"; a["\u3367"] = "15\u70b9"; a["\u3368"] = "16\u70b9"; a["\u3369"] = "17\u70b9"; a["\u336a"] = "18\u70b9"; a["\u336b"] = "19\u70b9"; a["\u336c"] = "20\u70b9"; a["\u336d"] = "21\u70b9"; a["\u336e"] = "22\u70b9"; a["\u336f"] = "23\u70b9"; a["\u3370"] = "24\u70b9"; a["\u33e0"] = "1\u65e5"; a["\u33e1"] = "2\u65e5"; a["\u33e2"] = "3\u65e5"; a["\u33e3"] = "4\u65e5"; a["\u33e4"] = "5\u65e5"; a["\u33e5"] = "6\u65e5"; a["\u33e6"] = "7\u65e5"; a["\u33e7"] = "8\u65e5"; a["\u33e8"] = "9\u65e5"; a["\u33e9"] = "10\u65e5"; a["\u33ea"] = "11\u65e5"; a["\u33eb"] = "12\u65e5"; a["\u33ec"] = "13\u65e5"; a["\u33ed"] = "14\u65e5"; a["\u33ee"] = "15\u65e5"; a["\u33ef"] = "16\u65e5"; a["\u33f0"] = "17\u65e5"; a["\u33f1"] = "18\u65e5"; a["\u33f2"] = "19\u65e5"; a["\u33f3"] = "20\u65e5"; a["\u33f4"] = "21\u65e5"; a["\u33f5"] = "22\u65e5"; a["\u33f6"] = "23\u65e5"; a["\u33f7"] = "24\u65e5"; a["\u33f8"] = "25\u65e5"; a["\u33f9"] = "26\u65e5"; a["\u33fa"] = "27\u65e5"; a["\u33fb"] = "28\u65e5"; a["\u33fc"] = "29\u65e5"; a["\u33fd"] = "30\u65e5"; a["\u33fe"] = "31\u65e5"; a["\ufb00"] = "ff"; a["\ufb01"] = "fi"; a["\ufb02"] = "fl"; a["\ufb03"] = "ffi"; a["\ufb04"] = "ffl"; a["\ufb05"] = "\u017ft"; a["\ufb06"] = "st"; a["\ufb13"] = "\u0574\u0576"; a["\ufb14"] = "\u0574\u0565"; a["\ufb15"] = "\u0574\u056b"; a["\ufb16"] = "\u057e\u0576"; a["\ufb17"] = "\u0574\u056d"; a["\ufb4f"] = "\u05d0\u05dc"; a["\ufb50"] = "\u0671"; a["\ufb51"] = "\u0671"; a["\ufb52"] = "\u067b"; a["\ufb53"] = "\u067b"; a["\ufb54"] = "\u067b"; a["\ufb55"] = "\u067b"; a["\ufb56"] = "\u067e"; a["\ufb57"] = "\u067e"; a["\ufb58"] = "\u067e"; a["\ufb59"] = "\u067e"; a["\ufb5a"] = "\u0680"; a["\ufb5b"] = "\u0680"; a["\ufb5c"] = "\u0680"; a["\ufb5d"] = "\u0680"; a["\ufb5e"] = "\u067a"; a["\ufb5f"] = "\u067a"; a["\ufb60"] = "\u067a"; a["\ufb61"] = "\u067a"; a["\ufb62"] = "\u067f"; a["\ufb63"] = "\u067f"; a["\ufb64"] = "\u067f"; a["\ufb65"] = "\u067f"; a["\ufb66"] = "\u0679"; a["\ufb67"] = "\u0679"; a["\ufb68"] = "\u0679"; a["\ufb69"] = "\u0679"; a["\ufb6a"] = "\u06a4"; a["\ufb6b"] = "\u06a4"; a["\ufb6c"] = "\u06a4"; a["\ufb6d"] = "\u06a4"; a["\ufb6e"] = "\u06a6"; a["\ufb6f"] = "\u06a6"; a["\ufb70"] = "\u06a6"; a["\ufb71"] = "\u06a6"; a["\ufb72"] = "\u0684"; a["\ufb73"] = "\u0684"; a["\ufb74"] = "\u0684"; a["\ufb75"] = "\u0684"; a["\ufb76"] = "\u0683"; a["\ufb77"] = "\u0683"; a["\ufb78"] = "\u0683"; a["\ufb79"] = "\u0683"; a["\ufb7a"] = "\u0686"; a["\ufb7b"] = "\u0686"; a["\ufb7c"] = "\u0686"; a["\ufb7d"] = "\u0686"; a["\ufb7e"] = "\u0687"; a["\ufb7f"] = "\u0687"; a["\ufb80"] = "\u0687"; a["\ufb81"] = "\u0687"; a["\ufb82"] = "\u068d"; a["\ufb83"] = "\u068d"; a["\ufb84"] = "\u068c"; a["\ufb85"] = "\u068c"; a["\ufb86"] = "\u068e"; a["\ufb87"] = "\u068e"; a["\ufb88"] = "\u0688"; a["\ufb89"] = "\u0688"; a["\ufb8a"] = "\u0698"; a["\ufb8b"] = "\u0698"; a["\ufb8c"] = "\u0691"; a["\ufb8d"] = "\u0691"; a["\ufb8e"] = "\u06a9"; a["\ufb8f"] = "\u06a9"; a["\ufb90"] = "\u06a9"; a["\ufb91"] = "\u06a9"; a["\ufb92"] = "\u06af"; a["\ufb93"] = "\u06af"; a["\ufb94"] = "\u06af"; a["\ufb95"] = "\u06af"; a["\ufb96"] = "\u06b3"; a["\ufb97"] = "\u06b3"; a["\ufb98"] = "\u06b3"; a["\ufb99"] = "\u06b3"; a["\ufb9a"] = "\u06b1"; a["\ufb9b"] = "\u06b1"; a["\ufb9c"] = "\u06b1"; a["\ufb9d"] = "\u06b1"; a["\ufb9e"] = "\u06ba"; a["\ufb9f"] = "\u06ba"; a["\ufba0"] = "\u06bb"; a["\ufba1"] = "\u06bb"; a["\ufba2"] = "\u06bb"; a["\ufba3"] = "\u06bb"; a["\ufba4"] = "\u06c0"; a["\ufba5"] = "\u06c0"; a["\ufba6"] = "\u06c1"; a["\ufba7"] = "\u06c1"; a["\ufba8"] = "\u06c1"; a["\ufba9"] = "\u06c1"; a["\ufbaa"] = "\u06be"; a["\ufbab"] = "\u06be"; a["\ufbac"] = "\u06be"; a["\ufbad"] = "\u06be"; a["\ufbae"] = "\u06d2"; a["\ufbaf"] = "\u06d2"; a["\ufbb0"] = "\u06d3"; a["\ufbb1"] = "\u06d3"; a["\ufbd3"] = "\u06ad"; a["\ufbd4"] = "\u06ad"; a["\ufbd5"] = "\u06ad"; a["\ufbd6"] = "\u06ad"; a["\ufbd7"] = "\u06c7"; a["\ufbd8"] = "\u06c7"; a["\ufbd9"] = "\u06c6"; a["\ufbda"] = "\u06c6"; a["\ufbdb"] = "\u06c8"; a["\ufbdc"] = "\u06c8"; a["\ufbdd"] = "\u0677"; a["\ufbde"] = "\u06cb"; a["\ufbdf"] = "\u06cb"; a["\ufbe0"] = "\u06c5"; a["\ufbe1"] = "\u06c5"; a["\ufbe2"] = "\u06c9"; a["\ufbe3"] = "\u06c9"; a["\ufbe4"] = "\u06d0"; a["\ufbe5"] = "\u06d0"; a["\ufbe6"] = "\u06d0"; a["\ufbe7"] = "\u06d0"; a["\ufbe8"] = "\u0649"; a["\ufbe9"] = "\u0649"; a["\ufbea"] = "\u0626\u0627"; a["\ufbeb"] = "\u0626\u0627"; a["\ufbec"] = "\u0626\u06d5"; a["\ufbed"] = "\u0626\u06d5"; a["\ufbee"] = "\u0626\u0648"; a["\ufbef"] = "\u0626\u0648"; a["\ufbf0"] = "\u0626\u06c7"; a["\ufbf1"] = "\u0626\u06c7"; a["\ufbf2"] = "\u0626\u06c6"; a["\ufbf3"] = "\u0626\u06c6"; a["\ufbf4"] = "\u0626\u06c8"; a["\ufbf5"] = "\u0626\u06c8"; a["\ufbf6"] = "\u0626\u06d0"; a["\ufbf7"] = "\u0626\u06d0"; a["\ufbf8"] = "\u0626\u06d0"; a["\ufbf9"] = "\u0626\u0649"; a["\ufbfa"] = "\u0626\u0649"; a["\ufbfb"] = "\u0626\u0649"; a["\ufbfc"] = "\u06cc"; a["\ufbfd"] = "\u06cc"; a["\ufbfe"] = "\u06cc"; a["\ufbff"] = "\u06cc"; a["\ufc00"] = "\u0626\u062c"; a["\ufc01"] = "\u0626\u062d"; a["\ufc02"] = "\u0626\u0645"; a["\ufc03"] = "\u0626\u0649"; a["\ufc04"] = "\u0626\u064a"; a["\ufc05"] = "\u0628\u062c"; a["\ufc06"] = "\u0628\u062d"; a["\ufc07"] = "\u0628\u062e"; a["\ufc08"] = "\u0628\u0645"; a["\ufc09"] = "\u0628\u0649"; a["\ufc0a"] = "\u0628\u064a"; a["\ufc0b"] = "\u062a\u062c"; a["\ufc0c"] = "\u062a\u062d"; a["\ufc0d"] = "\u062a\u062e"; a["\ufc0e"] = "\u062a\u0645"; a["\ufc0f"] = "\u062a\u0649"; a["\ufc10"] = "\u062a\u064a"; a["\ufc11"] = "\u062b\u062c"; a["\ufc12"] = "\u062b\u0645"; a["\ufc13"] = "\u062b\u0649"; a["\ufc14"] = "\u062b\u064a"; a["\ufc15"] = "\u062c\u062d"; a["\ufc16"] = "\u062c\u0645"; a["\ufc17"] = "\u062d\u062c"; a["\ufc18"] = "\u062d\u0645"; a["\ufc19"] = "\u062e\u062c"; a["\ufc1a"] = "\u062e\u062d"; a["\ufc1b"] = "\u062e\u0645"; a["\ufc1c"] = "\u0633\u062c"; a["\ufc1d"] = "\u0633\u062d"; a["\ufc1e"] = "\u0633\u062e"; a["\ufc1f"] = "\u0633\u0645"; a["\ufc20"] = "\u0635\u062d"; a["\ufc21"] = "\u0635\u0645"; a["\ufc22"] = "\u0636\u062c"; a["\ufc23"] = "\u0636\u062d"; a["\ufc24"] = "\u0636\u062e"; a["\ufc25"] = "\u0636\u0645"; a["\ufc26"] = "\u0637\u062d"; a["\ufc27"] = "\u0637\u0645"; a["\ufc28"] = "\u0638\u0645"; a["\ufc29"] = "\u0639\u062c"; a["\ufc2a"] = "\u0639\u0645"; a["\ufc2b"] = "\u063a\u062c"; a["\ufc2c"] = "\u063a\u0645"; a["\ufc2d"] = "\u0641\u062c"; a["\ufc2e"] = "\u0641\u062d"; a["\ufc2f"] = "\u0641\u062e"; a["\ufc30"] = "\u0641\u0645"; a["\ufc31"] = "\u0641\u0649"; a["\ufc32"] = "\u0641\u064a"; a["\ufc33"] = "\u0642\u062d"; a["\ufc34"] = "\u0642\u0645"; a["\ufc35"] = "\u0642\u0649"; a["\ufc36"] = "\u0642\u064a"; a["\ufc37"] = "\u0643\u0627"; a["\ufc38"] = "\u0643\u062c"; a["\ufc39"] = "\u0643\u062d"; a["\ufc3a"] = "\u0643\u062e"; a["\ufc3b"] = "\u0643\u0644"; a["\ufc3c"] = "\u0643\u0645"; a["\ufc3d"] = "\u0643\u0649"; a["\ufc3e"] = "\u0643\u064a"; a["\ufc3f"] = "\u0644\u062c"; a["\ufc40"] = "\u0644\u062d"; a["\ufc41"] = "\u0644\u062e"; a["\ufc42"] = "\u0644\u0645"; a["\ufc43"] = "\u0644\u0649"; a["\ufc44"] = "\u0644\u064a"; a["\ufc45"] = "\u0645\u062c"; a["\ufc46"] = "\u0645\u062d"; a["\ufc47"] = "\u0645\u062e"; a["\ufc48"] = "\u0645\u0645"; a["\ufc49"] = "\u0645\u0649"; a["\ufc4a"] = "\u0645\u064a"; a["\ufc4b"] = "\u0646\u062c"; a["\ufc4c"] = "\u0646\u062d"; a["\ufc4d"] = "\u0646\u062e"; a["\ufc4e"] = "\u0646\u0645"; a["\ufc4f"] = "\u0646\u0649"; a["\ufc50"] = "\u0646\u064a"; a["\ufc51"] = "\u0647\u062c"; a["\ufc52"] = "\u0647\u0645"; a["\ufc53"] = "\u0647\u0649"; a["\ufc54"] = "\u0647\u064a"; a["\ufc55"] = "\u064a\u062c"; a["\ufc56"] = "\u064a\u062d"; a["\ufc57"] = "\u064a\u062e"; a["\ufc58"] = "\u064a\u0645"; a["\ufc59"] = "\u064a\u0649"; a["\ufc5a"] = "\u064a\u064a"; a["\ufc5b"] = "\u0630\u0670"; a["\ufc5c"] = "\u0631\u0670"; a["\ufc5d"] = "\u0649\u0670"; a["\ufc5e"] = " \u064c\u0651"; a["\ufc5f"] = " \u064d\u0651"; a["\ufc60"] = " \u064e\u0651"; a["\ufc61"] = " \u064f\u0651"; a["\ufc62"] = " \u0650\u0651"; a["\ufc63"] = " \u0651\u0670"; a["\ufc64"] = "\u0626\u0631"; a["\ufc65"] = "\u0626\u0632"; a["\ufc66"] = "\u0626\u0645"; a["\ufc67"] = "\u0626\u0646"; a["\ufc68"] = "\u0626\u0649"; a["\ufc69"] = "\u0626\u064a"; a["\ufc6a"] = "\u0628\u0631"; a["\ufc6b"] = "\u0628\u0632"; a["\ufc6c"] = "\u0628\u0645"; a["\ufc6d"] = "\u0628\u0646"; a["\ufc6e"] = "\u0628\u0649"; a["\ufc6f"] = "\u0628\u064a"; a["\ufc70"] = "\u062a\u0631"; a["\ufc71"] = "\u062a\u0632"; a["\ufc72"] = "\u062a\u0645"; a["\ufc73"] = "\u062a\u0646"; a["\ufc74"] = "\u062a\u0649"; a["\ufc75"] = "\u062a\u064a"; a["\ufc76"] = "\u062b\u0631"; a["\ufc77"] = "\u062b\u0632"; a["\ufc78"] = "\u062b\u0645"; a["\ufc79"] = "\u062b\u0646"; a["\ufc7a"] = "\u062b\u0649"; a["\ufc7b"] = "\u062b\u064a"; a["\ufc7c"] = "\u0641\u0649"; a["\ufc7d"] = "\u0641\u064a"; a["\ufc7e"] = "\u0642\u0649"; a["\ufc7f"] = "\u0642\u064a"; a["\ufc80"] = "\u0643\u0627"; a["\ufc81"] = "\u0643\u0644"; a["\ufc82"] = "\u0643\u0645"; a["\ufc83"] = "\u0643\u0649"; a["\ufc84"] = "\u0643\u064a"; a["\ufc85"] = "\u0644\u0645"; a["\ufc86"] = "\u0644\u0649"; a["\ufc87"] = "\u0644\u064a"; a["\ufc88"] = "\u0645\u0627"; a["\ufc89"] = "\u0645\u0645"; a["\ufc8a"] = "\u0646\u0631"; a["\ufc8b"] = "\u0646\u0632"; a["\ufc8c"] = "\u0646\u0645"; a["\ufc8d"] = "\u0646\u0646"; a["\ufc8e"] = "\u0646\u0649"; a["\ufc8f"] = "\u0646\u064a"; a["\ufc90"] = "\u0649\u0670"; a["\ufc91"] = "\u064a\u0631"; a["\ufc92"] = "\u064a\u0632"; a["\ufc93"] = "\u064a\u0645"; a["\ufc94"] = "\u064a\u0646"; a["\ufc95"] = "\u064a\u0649"; a["\ufc96"] = "\u064a\u064a"; a["\ufc97"] = "\u0626\u062c"; a["\ufc98"] = "\u0626\u062d"; a["\ufc99"] = "\u0626\u062e"; a["\ufc9a"] = "\u0626\u0645"; a["\ufc9b"] = "\u0626\u0647"; a["\ufc9c"] = "\u0628\u062c"; a["\ufc9d"] = "\u0628\u062d"; a["\ufc9e"] = "\u0628\u062e"; a["\ufc9f"] = "\u0628\u0645"; a["\ufca0"] = "\u0628\u0647"; a["\ufca1"] = "\u062a\u062c"; a["\ufca2"] = "\u062a\u062d"; a["\ufca3"] = "\u062a\u062e"; a["\ufca4"] = "\u062a\u0645"; a["\ufca5"] = "\u062a\u0647"; a["\ufca6"] = "\u062b\u0645"; a["\ufca7"] = "\u062c\u062d"; a["\ufca8"] = "\u062c\u0645"; a["\ufca9"] = "\u062d\u062c"; a["\ufcaa"] = "\u062d\u0645"; a["\ufcab"] = "\u062e\u062c"; a["\ufcac"] = "\u062e\u0645"; a["\ufcad"] = "\u0633\u062c"; a["\ufcae"] = "\u0633\u062d"; a["\ufcaf"] = "\u0633\u062e"; a["\ufcb0"] = "\u0633\u0645"; a["\ufcb1"] = "\u0635\u062d"; a["\ufcb2"] = "\u0635\u062e"; a["\ufcb3"] = "\u0635\u0645"; a["\ufcb4"] = "\u0636\u062c"; a["\ufcb5"] = "\u0636\u062d"; a["\ufcb6"] = "\u0636\u062e"; a["\ufcb7"] = "\u0636\u0645"; a["\ufcb8"] = "\u0637\u062d"; a["\ufcb9"] = "\u0638\u0645"; a["\ufcba"] = "\u0639\u062c"; a["\ufcbb"] = "\u0639\u0645"; a["\ufcbc"] = "\u063a\u062c"; a["\ufcbd"] = "\u063a\u0645"; a["\ufcbe"] = "\u0641\u062c"; a["\ufcbf"] = "\u0641\u062d"; a["\ufcc0"] = "\u0641\u062e"; a["\ufcc1"] = "\u0641\u0645"; a["\ufcc2"] = "\u0642\u062d"; a["\ufcc3"] = "\u0642\u0645"; a["\ufcc4"] = "\u0643\u062c"; a["\ufcc5"] = "\u0643\u062d"; a["\ufcc6"] = "\u0643\u062e"; a["\ufcc7"] = "\u0643\u0644"; a["\ufcc8"] = "\u0643\u0645"; a["\ufcc9"] = "\u0644\u062c"; a["\ufcca"] = "\u0644\u062d"; a["\ufccb"] = "\u0644\u062e"; a["\ufccc"] = "\u0644\u0645"; a["\ufccd"] = "\u0644\u0647"; a["\ufcce"] = "\u0645\u062c"; a["\ufccf"] = "\u0645\u062d"; a["\ufcd0"] = "\u0645\u062e"; a["\ufcd1"] = "\u0645\u0645"; a["\ufcd2"] = "\u0646\u062c"; a["\ufcd3"] = "\u0646\u062d"; a["\ufcd4"] = "\u0646\u062e"; a["\ufcd5"] = "\u0646\u0645"; a["\ufcd6"] = "\u0646\u0647"; a["\ufcd7"] = "\u0647\u062c"; a["\ufcd8"] = "\u0647\u0645"; a["\ufcd9"] = "\u0647\u0670"; a["\ufcda"] = "\u064a\u062c"; a["\ufcdb"] = "\u064a\u062d"; a["\ufcdc"] = "\u064a\u062e"; a["\ufcdd"] = "\u064a\u0645"; a["\ufcde"] = "\u064a\u0647"; a["\ufcdf"] = "\u0626\u0645"; a["\ufce0"] = "\u0626\u0647"; a["\ufce1"] = "\u0628\u0645"; a["\ufce2"] = "\u0628\u0647"; a["\ufce3"] = "\u062a\u0645"; a["\ufce4"] = "\u062a\u0647"; a["\ufce5"] = "\u062b\u0645"; a["\ufce6"] = "\u062b\u0647"; a["\ufce7"] = "\u0633\u0645"; a["\ufce8"] = "\u0633\u0647"; a["\ufce9"] = "\u0634\u0645"; a["\ufcea"] = "\u0634\u0647"; a["\ufceb"] = "\u0643\u0644"; a["\ufcec"] = "\u0643\u0645"; a["\ufced"] = "\u0644\u0645"; a["\ufcee"] = "\u0646\u0645"; a["\ufcef"] = "\u0646\u0647"; a["\ufcf0"] = "\u064a\u0645"; a["\ufcf1"] = "\u064a\u0647"; a["\ufcf2"] = "\u0640\u064e\u0651"; a["\ufcf3"] = "\u0640\u064f\u0651"; a["\ufcf4"] = "\u0640\u0650\u0651"; a["\ufcf5"] = "\u0637\u0649"; a["\ufcf6"] = "\u0637\u064a"; a["\ufcf7"] = "\u0639\u0649"; a["\ufcf8"] = "\u0639\u064a"; a["\ufcf9"] = "\u063a\u0649"; a["\ufcfa"] = "\u063a\u064a"; a["\ufcfb"] = "\u0633\u0649"; a["\ufcfc"] = "\u0633\u064a"; a["\ufcfd"] = "\u0634\u0649"; a["\ufcfe"] = "\u0634\u064a"; a["\ufcff"] = "\u062d\u0649"; a["\ufd00"] = "\u062d\u064a"; a["\ufd01"] = "\u062c\u0649"; a["\ufd02"] = "\u062c\u064a"; a["\ufd03"] = "\u062e\u0649"; a["\ufd04"] = "\u062e\u064a"; a["\ufd05"] = "\u0635\u0649"; a["\ufd06"] = "\u0635\u064a"; a["\ufd07"] = "\u0636\u0649"; a["\ufd08"] = "\u0636\u064a"; a["\ufd09"] = "\u0634\u062c"; a["\ufd0a"] = "\u0634\u062d"; a["\ufd0b"] = "\u0634\u062e"; a["\ufd0c"] = "\u0634\u0645"; a["\ufd0d"] = "\u0634\u0631"; a["\ufd0e"] = "\u0633\u0631"; a["\ufd0f"] = "\u0635\u0631"; a["\ufd10"] = "\u0636\u0631"; a["\ufd11"] = "\u0637\u0649"; a["\ufd12"] = "\u0637\u064a"; a["\ufd13"] = "\u0639\u0649"; a["\ufd14"] = "\u0639\u064a"; a["\ufd15"] = "\u063a\u0649"; a["\ufd16"] = "\u063a\u064a"; a["\ufd17"] = "\u0633\u0649"; a["\ufd18"] = "\u0633\u064a"; a["\ufd19"] = "\u0634\u0649"; a["\ufd1a"] = "\u0634\u064a"; a["\ufd1b"] = "\u062d\u0649"; a["\ufd1c"] = "\u062d\u064a"; a["\ufd1d"] = "\u062c\u0649"; a["\ufd1e"] = "\u062c\u064a"; a["\ufd1f"] = "\u062e\u0649"; a["\ufd20"] = "\u062e\u064a"; a["\ufd21"] = "\u0635\u0649"; a["\ufd22"] = "\u0635\u064a"; a["\ufd23"] = "\u0636\u0649"; a["\ufd24"] = "\u0636\u064a"; a["\ufd25"] = "\u0634\u062c"; a["\ufd26"] = "\u0634\u062d"; a["\ufd27"] = "\u0634\u062e"; a["\ufd28"] = "\u0634\u0645"; a["\ufd29"] = "\u0634\u0631"; a["\ufd2a"] = "\u0633\u0631"; a["\ufd2b"] = "\u0635\u0631"; a["\ufd2c"] = "\u0636\u0631"; a["\ufd2d"] = "\u0634\u062c"; a["\ufd2e"] = "\u0634\u062d"; a["\ufd2f"] = "\u0634\u062e"; a["\ufd30"] = "\u0634\u0645"; a["\ufd31"] = "\u0633\u0647"; a["\ufd32"] = "\u0634\u0647"; a["\ufd33"] = "\u0637\u0645"; a["\ufd34"] = "\u0633\u062c"; a["\ufd35"] = "\u0633\u062d"; a["\ufd36"] = "\u0633\u062e"; a["\ufd37"] = "\u0634\u062c"; a["\ufd38"] = "\u0634\u062d"; a["\ufd39"] = "\u0634\u062e"; a["\ufd3a"] = "\u0637\u0645"; a["\ufd3b"] = "\u0638\u0645"; a["\ufd3c"] = "\u0627\u064b"; a["\ufd3d"] = "\u0627\u064b"; a["\ufd50"] = "\u062a\u062c\u0645"; a["\ufd51"] = "\u062a\u062d\u062c"; a["\ufd52"] = "\u062a\u062d\u062c"; a["\ufd53"] = "\u062a\u062d\u0645"; a["\ufd54"] = "\u062a\u062e\u0645"; a["\ufd55"] = "\u062a\u0645\u062c"; a["\ufd56"] = "\u062a\u0645\u062d"; a["\ufd57"] = "\u062a\u0645\u062e"; a["\ufd58"] = "\u062c\u0645\u062d"; a["\ufd59"] = "\u062c\u0645\u062d"; a["\ufd5a"] = "\u062d\u0645\u064a"; a["\ufd5b"] = "\u062d\u0645\u0649"; a["\ufd5c"] = "\u0633\u062d\u062c"; a["\ufd5d"] = "\u0633\u062c\u062d"; a["\ufd5e"] = "\u0633\u062c\u0649"; a["\ufd5f"] = "\u0633\u0645\u062d"; a["\ufd60"] = "\u0633\u0645\u062d"; a["\ufd61"] = "\u0633\u0645\u062c"; a["\ufd62"] = "\u0633\u0645\u0645"; a["\ufd63"] = "\u0633\u0645\u0645"; a["\ufd64"] = "\u0635\u062d\u062d"; a["\ufd65"] = "\u0635\u062d\u062d"; a["\ufd66"] = "\u0635\u0645\u0645"; a["\ufd67"] = "\u0634\u062d\u0645"; a["\ufd68"] = "\u0634\u062d\u0645"; a["\ufd69"] = "\u0634\u062c\u064a"; a["\ufd6a"] = "\u0634\u0645\u062e"; a["\ufd6b"] = "\u0634\u0645\u062e"; a["\ufd6c"] = "\u0634\u0645\u0645"; a["\ufd6d"] = "\u0634\u0645\u0645"; a["\ufd6e"] = "\u0636\u062d\u0649"; a["\ufd6f"] = "\u0636\u062e\u0645"; a["\ufd70"] = "\u0636\u062e\u0645"; a["\ufd71"] = "\u0637\u0645\u062d"; a["\ufd72"] = "\u0637\u0645\u062d"; a["\ufd73"] = "\u0637\u0645\u0645"; a["\ufd74"] = "\u0637\u0645\u064a"; a["\ufd75"] = "\u0639\u062c\u0645"; a["\ufd76"] = "\u0639\u0645\u0645"; a["\ufd77"] = "\u0639\u0645\u0645"; a["\ufd78"] = "\u0639\u0645\u0649"; a["\ufd79"] = "\u063a\u0645\u0645"; a["\ufd7a"] = "\u063a\u0645\u064a"; a["\ufd7b"] = "\u063a\u0645\u0649"; a["\ufd7c"] = "\u0641\u062e\u0645"; a["\ufd7d"] = "\u0641\u062e\u0645"; a["\ufd7e"] = "\u0642\u0645\u062d"; a["\ufd7f"] = "\u0642\u0645\u0645"; a["\ufd80"] = "\u0644\u062d\u0645"; a["\ufd81"] = "\u0644\u062d\u064a"; a["\ufd82"] = "\u0644\u062d\u0649"; a["\ufd83"] = "\u0644\u062c\u062c"; a["\ufd84"] = "\u0644\u062c\u062c"; a["\ufd85"] = "\u0644\u062e\u0645"; a["\ufd86"] = "\u0644\u062e\u0645"; a["\ufd87"] = "\u0644\u0645\u062d"; a["\ufd88"] = "\u0644\u0645\u062d"; a["\ufd89"] = "\u0645\u062d\u062c"; a["\ufd8a"] = "\u0645\u062d\u0645"; a["\ufd8b"] = "\u0645\u062d\u064a"; a["\ufd8c"] = "\u0645\u062c\u062d"; a["\ufd8d"] = "\u0645\u062c\u0645"; a["\ufd8e"] = "\u0645\u062e\u062c"; a["\ufd8f"] = "\u0645\u062e\u0645"; a["\ufd92"] = "\u0645\u062c\u062e"; a["\ufd93"] = "\u0647\u0645\u062c"; a["\ufd94"] = "\u0647\u0645\u0645"; a["\ufd95"] = "\u0646\u062d\u0645"; a["\ufd96"] = "\u0646\u062d\u0649"; a["\ufd97"] = "\u0646\u062c\u0645"; a["\ufd98"] = "\u0646\u062c\u0645"; a["\ufd99"] = "\u0646\u062c\u0649"; a["\ufd9a"] = "\u0646\u0645\u064a"; a["\ufd9b"] = "\u0646\u0645\u0649"; a["\ufd9c"] = "\u064a\u0645\u0645"; a["\ufd9d"] = "\u064a\u0645\u0645"; a["\ufd9e"] = "\u0628\u062e\u064a"; a["\ufd9f"] = "\u062a\u062c\u064a"; a["\ufda0"] = "\u062a\u062c\u0649"; a["\ufda1"] = "\u062a\u062e\u064a"; a["\ufda2"] = "\u062a\u062e\u0649"; a["\ufda3"] = "\u062a\u0645\u064a"; a["\ufda4"] = "\u062a\u0645\u0649"; a["\ufda5"] = "\u062c\u0645\u064a"; a["\ufda6"] = "\u062c\u062d\u0649"; a["\ufda7"] = "\u062c\u0645\u0649"; a["\ufda8"] = "\u0633\u062e\u0649"; a["\ufda9"] = "\u0635\u062d\u064a"; a["\ufdaa"] = "\u0634\u062d\u064a"; a["\ufdab"] = "\u0636\u062d\u064a"; a["\ufdac"] = "\u0644\u062c\u064a"; a["\ufdad"] = "\u0644\u0645\u064a"; a["\ufdae"] = "\u064a\u062d\u064a"; a["\ufdaf"] = "\u064a\u062c\u064a"; a["\ufdb0"] = "\u064a\u0645\u064a"; a["\ufdb1"] = "\u0645\u0645\u064a"; a["\ufdb2"] = "\u0642\u0645\u064a"; a["\ufdb3"] = "\u0646\u062d\u064a"; a["\ufdb4"] = "\u0642\u0645\u062d"; a["\ufdb5"] = "\u0644\u062d\u0645"; a["\ufdb6"] = "\u0639\u0645\u064a"; a["\ufdb7"] = "\u0643\u0645\u064a"; a["\ufdb8"] = "\u0646\u062c\u062d"; a["\ufdb9"] = "\u0645\u062e\u064a"; a["\ufdba"] = "\u0644\u062c\u0645"; a["\ufdbb"] = "\u0643\u0645\u0645"; a["\ufdbc"] = "\u0644\u062c\u0645"; a["\ufdbd"] = "\u0646\u062c\u062d"; a["\ufdbe"] = "\u062c\u062d\u064a"; a["\ufdbf"] = "\u062d\u062c\u064a"; a["\ufdc0"] = "\u0645\u062c\u064a"; a["\ufdc1"] = "\u0641\u0645\u064a"; a["\ufdc2"] = "\u0628\u062d\u064a"; a["\ufdc3"] = "\u0643\u0645\u0645"; a["\ufdc4"] = "\u0639\u062c\u0645"; a["\ufdc5"] = "\u0635\u0645\u0645"; a["\ufdc6"] = "\u0633\u062e\u064a"; a["\ufdc7"] = "\u0646\u062c\u064a"; a["\ufe49"] = "\u203e"; a["\ufe4a"] = "\u203e"; a["\ufe4b"] = "\u203e"; a["\ufe4c"] = "\u203e"; a["\ufe4d"] = "_"; a["\ufe4e"] = "_"; a["\ufe4f"] = "_"; a["\ufe80"] = "\u0621"; a["\ufe81"] = "\u0622"; a["\ufe82"] = "\u0622"; a["\ufe83"] = "\u0623"; a["\ufe84"] = "\u0623"; a["\ufe85"] = "\u0624"; a["\ufe86"] = "\u0624"; a["\ufe87"] = "\u0625"; a["\ufe88"] = "\u0625"; a["\ufe89"] = "\u0626"; a["\ufe8a"] = "\u0626"; a["\ufe8b"] = "\u0626"; a["\ufe8c"] = "\u0626"; a["\ufe8d"] = "\u0627"; a["\ufe8e"] = "\u0627"; a["\ufe8f"] = "\u0628"; a["\ufe90"] = "\u0628"; a["\ufe91"] = "\u0628"; a["\ufe92"] = "\u0628"; a["\ufe93"] = "\u0629"; a["\ufe94"] = "\u0629"; a["\ufe95"] = "\u062a"; a["\ufe96"] = "\u062a"; a["\ufe97"] = "\u062a"; a["\ufe98"] = "\u062a"; a["\ufe99"] = "\u062b"; a["\ufe9a"] = "\u062b"; a["\ufe9b"] = "\u062b"; a["\ufe9c"] = "\u062b"; a["\ufe9d"] = "\u062c"; a["\ufe9e"] = "\u062c"; a["\ufe9f"] = "\u062c"; a["\ufea0"] = "\u062c"; a["\ufea1"] = "\u062d"; a["\ufea2"] = "\u062d"; a["\ufea3"] = "\u062d"; a["\ufea4"] = "\u062d"; a["\ufea5"] = "\u062e"; a["\ufea6"] = "\u062e"; a["\ufea7"] = "\u062e"; a["\ufea8"] = "\u062e"; a["\ufea9"] = "\u062f"; a["\ufeaa"] = "\u062f"; a["\ufeab"] = "\u0630"; a["\ufeac"] = "\u0630"; a["\ufead"] = "\u0631"; a["\ufeae"] = "\u0631"; a["\ufeaf"] = "\u0632"; a["\ufeb0"] = "\u0632"; a["\ufeb1"] = "\u0633"; a["\ufeb2"] = "\u0633"; a["\ufeb3"] = "\u0633"; a["\ufeb4"] = "\u0633"; a["\ufeb5"] = "\u0634"; a["\ufeb6"] = "\u0634"; a["\ufeb7"] = "\u0634"; a["\ufeb8"] = "\u0634"; a["\ufeb9"] = "\u0635"; a["\ufeba"] = "\u0635"; a["\ufebb"] = "\u0635"; a["\ufebc"] = "\u0635"; a["\ufebd"] = "\u0636"; a["\ufebe"] = "\u0636"; a["\ufebf"] = "\u0636"; a["\ufec0"] = "\u0636"; a["\ufec1"] = "\u0637"; a["\ufec2"] = "\u0637"; a["\ufec3"] = "\u0637"; a["\ufec4"] = "\u0637"; a["\ufec5"] = "\u0638"; a["\ufec6"] = "\u0638"; a["\ufec7"] = "\u0638"; a["\ufec8"] = "\u0638"; a["\ufec9"] = "\u0639"; a["\ufeca"] = "\u0639"; a["\ufecb"] = "\u0639"; a["\ufecc"] = "\u0639"; a["\ufecd"] = "\u063a"; a["\ufece"] = "\u063a"; a["\ufecf"] = "\u063a"; a["\ufed0"] = "\u063a"; a["\ufed1"] = "\u0641"; a["\ufed2"] = "\u0641"; a["\ufed3"] = "\u0641"; a["\ufed4"] = "\u0641"; a["\ufed5"] = "\u0642"; a["\ufed6"] = "\u0642"; a["\ufed7"] = "\u0642"; a["\ufed8"] = "\u0642"; a["\ufed9"] = "\u0643"; a["\ufeda"] = "\u0643"; a["\ufedb"] = "\u0643"; a["\ufedc"] = "\u0643"; a["\ufedd"] = "\u0644"; a["\ufede"] = "\u0644"; a["\ufedf"] = "\u0644"; a["\ufee0"] = "\u0644"; a["\ufee1"] = "\u0645"; a["\ufee2"] = "\u0645"; a["\ufee3"] = "\u0645"; a["\ufee4"] = "\u0645"; a["\ufee5"] = "\u0646"; a["\ufee6"] = "\u0646"; a["\ufee7"] = "\u0646"; a["\ufee8"] = "\u0646"; a["\ufee9"] = "\u0647"; a["\ufeea"] = "\u0647"; a["\ufeeb"] = "\u0647"; a["\ufeec"] = "\u0647"; a["\ufeed"] = "\u0648"; a["\ufeee"] = "\u0648"; a["\ufeef"] = "\u0649"; a["\ufef0"] = "\u0649"; a["\ufef1"] = "\u064a"; a["\ufef2"] = "\u064a"; a["\ufef3"] = "\u064a"; a["\ufef4"] = "\u064a"; a["\ufef5"] = "\u0644\u0622"; a["\ufef6"] = "\u0644\u0622"; a["\ufef7"] = "\u0644\u0623"; a["\ufef8"] = "\u0644\u0623"; a["\ufef9"] = "\u0644\u0625"; a["\ufefa"] = "\u0644\u0625"; a["\ufefb"] = "\u0644\u0627"; a["\ufefc"] = "\u0644\u0627" }); e.mapSpecialUnicodeValues = function (a) { return 65520 <= a && 65535 >= a ? 0 : 62976 <= a && 63743 >= a ? O()[a] || a : a }; e.reverseIfRtl = function (b) { var e = b.length, l; if (!(l = 1 >= e)) { l = b.charCodeAt(0); var k = a[13]; l >= k.begin && l < k.end ? l = !0 : (k = a[11], l = l >= k.begin && l < k.end ? !0 : !1); l = !l } if (l) return b; l = ""; for (--e; 0 <= e; e--) l += b[e]; return l }; e.getUnicodeRangeFor = function (b) { for (var e = 0, l = a.length; e < l; e++) { var k = a[e]; if (b >= k.begin && b < k.end) return e } return -1 }; e.getNormalizedUnicodes = R; e.getUnicodeForGlyph = function (a, e) { var l = e[a]; if (void 0 !== l) return l; if (!a) return -1; if ("u" === a[0]) { l = a.length; if (7 === l && "n" === a[1] && "i" === a[2]) l = a.substr(3); else if (5 <= l && 7 >= l) l = a.substr(1); else return -1; if (l === l.toUpperCase() && (l = parseInt(l, 16), 0 <= l)) return l } return -1 } }); (function (e, l) { l(e.pdfjsCoreStream = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreJbig2, e.pdfjsCoreJpg, e.pdfjsCoreJpx) })(this, function (e, l, R, O, a, b) { var L = l.Util, Q = l.error, k = l.info, I = l.isArray, X = l.createObjectURL, N = l.shadow, u = l.warn, G = R.Dict, M = R.isDict, K = O.Jbig2Image, J = a.JpegImage, v = b.JpxImage, r = function () { function a(f, b, d, c) { this.bytes = f instanceof Uint8Array ? f : new Uint8Array(f); this.pos = this.start = b || 0; this.end = b + d || this.bytes.length; this.dict = c } a.prototype = { get length() { return this.end - this.start }, get isEmpty() { return 0 === this.length }, getByte: function () { return this.pos >= this.end ? -1 : this.bytes[this.pos++] }, getUint16: function () { var a = this.getByte(), b = this.getByte(); return -1 === a || -1 === b ? -1 : (a << 8) + b }, getInt32: function () { var a = this.getByte(), b = this.getByte(), d = this.getByte(), c = this.getByte(); return (a << 24) + (b << 16) + (d << 8) + c }, getBytes: function (a) { var b = this.bytes, d = this.pos, c = this.end; if (!a) return b.subarray(d, c); a = d + a; a > c && (a = c); this.pos = a; return b.subarray(d, a) }, peekByte: function () { var a = this.getByte(); this.pos--; return a }, peekBytes: function (a) { a = this.getBytes(a); this.pos -= a.length; return a }, skip: function (a) { a || (a = 1); this.pos += a }, reset: function () { this.pos = this.start }, moveStart: function () { this.start = this.pos }, makeSubStream: function (f, b, c) { return new a(this.bytes.buffer, f, b, c) }, isStream: !0 }; return a }(); l = function () { function a(f) { for (var b = f.length, d = new Uint8Array(b), c = 0; c < b; ++c) d[c] = f.charCodeAt(c); r.call(this, d) } a.prototype = r.prototype; return a }(); var P = function () { function a(b) { this.bufferLength = this.pos = 0; this.eof = !1; this.buffer = f; this.minBufferLength = 512; if (b) for (; this.minBufferLength < b;) this.minBufferLength *= 2 } var f = new Uint8Array(0); a.prototype = { get isEmpty() { for (; !this.eof && 0 === this.bufferLength;) this.readBlock(); return 0 === this.bufferLength }, ensureBuffer: function (a) { var f = this.buffer; if (a <= f.byteLength) return f; for (var b = this.minBufferLength; b < a;) b *= 2; a = new Uint8Array(b); a.set(f); return this.buffer = a }, getByte: function () { for (var a = this.pos; this.bufferLength <= a;) { if (this.eof) return -1; this.readBlock() } return this.buffer[this.pos++] }, getUint16: function () { var a = this.getByte(), f = this.getByte(); return -1 === a || -1 === f ? -1 : (a << 8) + f }, getInt32: function () { var a = this.getByte(), f = this.getByte(), b = this.getByte(), d = this.getByte(); return (a << 24) + (f << 16) + (b << 8) + d }, getBytes: function (a) { var f = this.pos; if (a) { this.ensureBuffer(f + a); for (a = f + a; !this.eof && this.bufferLength < a;) this.readBlock(); var b = this.bufferLength; a > b && (a = b) } else { for (; !this.eof;) this.readBlock(); a = this.bufferLength } this.pos = a; return this.buffer.subarray(f, a) }, peekByte: function () { var a = this.getByte(); this.pos--; return a }, peekBytes: function (a) { a = this.getBytes(a); this.pos -= a.length; return a }, makeSubStream: function (a, f, b) { for (var d = a + f; this.bufferLength <= d && !this.eof;) this.readBlock(); return new r(this.buffer, a, f, b) }, skip: function (a) { a || (a = 1); this.pos += a }, reset: function () { this.pos = 0 }, getBaseStreams: function () { return this.str && this.str.getBaseStreams ? this.str.getBaseStreams() : [] } }; return a }(); R = function () { function a(f) { this.streams = f; P.call(this, null) } a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { var a = this.streams; if (0 === a.length) this.eof = !0; else { var a = a.shift().getBytes(), b = this.bufferLength, d = b + a.length; this.ensureBuffer(d).set(a, b); this.bufferLength = d } }; a.prototype.getBaseStreams = function () { for (var a = [], b = 0, d = this.streams.length; b < d; b++) { var c = this.streams[b]; c.getBaseStreams && L.appendToArray(a, c.getBaseStreams()) } return a }; return a }(); O = function () { function a(b, f) { this.str = b; this.dict = b.dict; var d = b.getByte(), c = b.getByte(); -1 !== d && -1 !== c || Q("Invalid header in flate stream: " + d + ", " + c); 8 !== (d & 15) && Q("Unknown compression method in flate stream: " + d + ", " + c); 0 !== ((d << 8) + c) % 31 && Q("Bad FCHECK in flate stream: " + d + ", " + c); c & 32 && Q("FDICT bit set in flate stream: " + d + ", " + c); this.codeBuf = this.codeSize = 0; P.call(this, f) } var b = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), c = new Int32Array([3, 4, 5, 6, 7, 8, 9, 10, 65547, 65549, 65551, 65553, 131091, 131095, 131099, 131103, 196643, 196651, 196659, 196667, 262211, 262227, 262243, 262259, 327811, 327843, 327875, 327907, 258, 258, 258]), g = new Int32Array([1, 2, 3, 4, 65541, 65543, 131081, 131085, 196625, 196633, 262177, 262193, 327745, 327777, 393345, 393409, 459009, 459137, 524801, 525057, 590849, 591361, 657409, 658433, 724993, 727041, 794625, 798721, 868353, 876545]), h = [new Int32Array([459008, 524368, 524304, 524568, 459024, 524400, 524336, 590016, 459016, 524384, 524320, 589984, 524288, 524416, 524352, 590048, 459012, 524376, 524312, 589968, 459028, 524408, 524344, 590032, 459020, 524392, 524328, 59E4, 524296, 524424, 524360, 590064, 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590024, 459018, 524388, 524324, 589992, 524292, 524420, 524356, 590056, 459014, 524380, 524316, 589976, 459030, 524412, 524348, 590040, 459022, 524396, 524332, 590008, 524300, 524428, 524364, 590072, 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590020, 459017, 524386, 524322, 589988, 524290, 524418, 524354, 590052, 459013, 524378, 524314, 589972, 459029, 524410, 524346, 590036, 459021, 524394, 524330, 590004, 524298, 524426, 524362, 590068, 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590028, 459019, 524390, 524326, 589996, 524294, 524422, 524358, 590060, 459015, 524382, 524318, 589980, 459031, 524414, 524350, 590044, 459023, 524398, 524334, 590012, 524302, 524430, 524366, 590076, 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590018, 459016, 524385, 524321, 589986, 524289, 524417, 524353, 590050, 459012, 524377, 524313, 589970, 459028, 524409, 524345, 590034, 459020, 524393, 524329, 590002, 524297, 524425, 524361, 590066, 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590026, 459018, 524389, 524325, 589994, 524293, 524421, 524357, 590058, 459014, 524381, 524317, 589978, 459030, 524413, 524349, 590042, 459022, 524397, 524333, 590010, 524301, 524429, 524365, 590074, 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590022, 459017, 524387, 524323, 589990, 524291, 524419, 524355, 590054, 459013, 524379, 524315, 589974, 459029, 524411, 524347, 590038, 459021, 524395, 524331, 590006, 524299, 524427, 524363, 590070, 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590030, 459019, 524391, 524327, 589998, 524295, 524423, 524359, 590062, 459015, 524383, 524319, 589982, 459031, 524415, 524351, 590046, 459023, 524399, 524335, 590014, 524303, 524431, 524367, 590078, 459008, 524368, 524304, 524568, 459024, 524400, 524336, 590017, 459016, 524384, 524320, 589985, 524288, 524416, 524352, 590049, 459012, 524376, 524312, 589969, 459028, 524408, 524344, 590033, 459020, 524392, 524328, 590001, 524296, 524424, 524360, 590065, 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590025, 459018, 524388, 524324, 589993, 524292, 524420, 524356, 590057, 459014, 524380, 524316, 589977, 459030, 524412, 524348, 590041, 459022, 524396, 524332, 590009, 524300, 524428, 524364, 590073, 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590021, 459017, 524386, 524322, 589989, 524290, 524418, 524354, 590053, 459013, 524378, 524314, 589973, 459029, 524410, 524346, 590037, 459021, 524394, 524330, 590005, 524298, 524426, 524362, 590069, 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590029, 459019, 524390, 524326, 589997, 524294, 524422, 524358, 590061, 459015, 524382, 524318, 589981, 459031, 524414, 524350, 590045, 459023, 524398, 524334, 590013, 524302, 524430, 524366, 590077, 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590019, 459016, 524385, 524321, 589987, 524289, 524417, 524353, 590051, 459012, 524377, 524313, 589971, 459028, 524409, 524345, 590035, 459020, 524393, 524329, 590003, 524297, 524425, 524361, 590067, 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590027, 459018, 524389, 524325, 589995, 524293, 524421, 524357, 590059, 459014, 524381, 524317, 589979, 459030, 524413, 524349, 590043, 459022, 524397, 524333, 590011, 524301, 524429, 524365, 590075, 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590023, 459017, 524387, 524323, 589991, 524291, 524419, 524355, 590055, 459013, 524379, 524315, 589975, 459029, 524411, 524347, 590039, 459021, 524395, 524331, 590007, 524299, 524427, 524363, 590071, 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590031, 459019, 524391, 524327, 589999, 524295, 524423, 524359, 590063, 459015, 524383, 524319, 589983, 459031, 524415, 524351, 590047, 459023, 524399, 524335, 590015, 524303, 524431, 524367, 590079]), 9], m = [new Int32Array([327680, 327696, 327688, 327704, 327684, 327700, 327692, 327708, 327682, 327698, 327690, 327706, 327686, 327702, 327694, 0, 327681, 327697, 327689, 327705, 327685, 327701, 327693, 327709, 327683, 327699, 327691, 327707, 327687, 327703, 327695, 0]), 5]; a.prototype = Object.create(P.prototype); a.prototype.getBits = function (a) { for (var b = this.str, f = this.codeSize, d = this.codeBuf, c; f < a;) -1 === (c = b.getByte()) && Q("Bad encoding in flate stream"), d |= c << f, f += 8; this.codeBuf = d >> a; this.codeSize = f - a; return d & (1 << a) - 1 }; a.prototype.getCode = function (a) { var b = this.str, f = a[0], d = a[1]; a = this.codeSize; for (var c = this.codeBuf, g; a < d && -1 !== (g = b.getByte()) ;) c |= g << a, a += 8; f = f[c & (1 << d) - 1]; b = f >> 16; f &= 65535; (1 > b || a < b) && Q("Bad encoding in flate stream"); this.codeBuf = c >> b; this.codeSize = a - b; return f }; a.prototype.generateHuffmanTable = function (a) { var b = a.length, f = 0, d; for (d = 0; d < b; ++d) a[d] > f && (f = a[d]); for (var c = 1 << f, g = new Int32Array(c), h = 1, w = 0, p = 2; h <= f; ++h, w <<= 1, p <<= 1) for (var q = 0; q < b; ++q) if (a[q] === h) { var m = 0, n = w; for (d = 0; d < h; ++d) m = m << 1 | n & 1, n >>= 1; for (d = m; d < c; d += p) g[d] = h << 16 | q; ++w } return [g, f] }; a.prototype.readBlock = function () { var a, d; d = this.str; a = this.getBits(3); a & 1 && (this.eof = !0); a >>= 1; if (0 === a) { var n; -1 === (n = d.getByte()) && Q("Bad block header in flate stream"); var t = n; -1 === (n = d.getByte()) && Q("Bad block header in flate stream"); t |= n << 8; -1 === (n = d.getByte()) && Q("Bad block header in flate stream"); a = n; -1 === (n = d.getByte()) && Q("Bad block header in flate stream"); a |= n << 8; a === (~t & 65535) || 0 === t && 0 === a || Q("Bad uncompressed block length in flate stream"); this.codeSize = this.codeBuf = 0; n = this.bufferLength; a = this.ensureBuffer(n + t); var x = n + t; this.bufferLength = x; if (0 === t) -1 === d.peekByte() && (this.eof = !0); else for (t = n; t < x; ++t) { if (-1 === (n = d.getByte())) { this.eof = !0; break } a[t] = n } } else { if (1 === a) n = h, t = m; else if (2 === a) { a = this.getBits(5) + 257; x = this.getBits(5) + 1; d = this.getBits(4) + 4; t = new Uint8Array(b.length); for (n = 0; n < d; ++n) t[b[n]] = this.getBits(3); t = this.generateHuffmanTable(t); n = d = 0; for (var x = a + x, e = new Uint8Array(x), z, y, p; n < x;) { p = this.getCode(t); if (16 === p) z = 2, y = 3, p = d; else if (17 === p) y = z = 3, p = d = 0; else if (18 === p) z = 7, y = 11, p = d = 0; else { e[n++] = d = p; continue } for (z = this.getBits(z) + y; 0 < z--;) e[n++] = p } n = this.generateHuffmanTable(e.subarray(0, a)); t = this.generateHuffmanTable(e.subarray(a, x)) } else Q("Unknown block type in flate stream"); x = (a = this.buffer) ? a.length : 0; for (e = this.bufferLength; ;) if (p = this.getCode(n), 256 > p) e + 1 >= x && (a = this.ensureBuffer(e + 1), x = a.length), a[e++] = p; else { if (256 === p) { this.bufferLength = e; break } p -= 257; p = c[p]; z = p >> 16; 0 < z && (z = this.getBits(z)); d = (p & 65535) + z; p = this.getCode(t); p = g[p]; z = p >> 16; 0 < z && (z = this.getBits(z)); p = (p & 65535) + z; e + d >= x && (a = this.ensureBuffer(e + d), x = a.length); for (z = 0; z < d; ++z, ++e) a[e] = a[e - p] } } }; return a }(); a = function () { function a(b, d, c) { if (!M(c)) return b; var g = this.predictor = c.get("Predictor") || 1; if (1 >= g) return b; 2 !== g && (10 > g || 15 < g) && Q("Unsupported predictor: " + g); this.readBlock = 2 === g ? this.readBlockTiff : this.readBlockPng; this.str = b; this.dict = b.dict; b = this.colors = c.get("Colors") || 1; g = this.bits = c.get("BitsPerComponent") || 8; c = this.columns = c.get("Columns") || 1; this.pixBytes = b * g + 7 >> 3; this.rowBytes = c * b * g + 7 >> 3; P.call(this, d); return this } a.prototype = Object.create(P.prototype); a.prototype.readBlockTiff = function () { var a = this.rowBytes, b = this.bufferLength, d = this.ensureBuffer(b + a), c = this.bits, g = this.colors, h = this.str.getBytes(a); this.eof = !h.length; if (!this.eof) { var n = 0, m = 0, t = 0, x = 0, e = b; if (1 === c) for (b = 0; b < a; ++b) c = h[b], n = n << 8 | c, d[e++] = (c ^ n >> g) & 255, n &= 65535; else if (8 === c) { for (b = 0; b < g; ++b) d[e++] = h[b]; for (; b < a; ++b) d[e] = d[e - g] + h[b], e++ } else { for (var e = new Uint8Array(g + 1), z = (1 << c) - 1, y = 0, p = b, D = this.columns, b = 0; b < D; ++b) for (var k = 0; k < g; ++k) t < c && (n = n << 8 | h[y++] & 255, t += 8), e[k] = e[k] + (n >> t - c) & z, t -= c, m = m << c | e[k], x += c, 8 <= x && (d[p++] = m >> x - 8 & 255, x -= 8); 0 < x && (d[p++] = (m << 8 - x) + (n & (1 << 8 - x) - 1)) } this.bufferLength += a } }; a.prototype.readBlockPng = function () { var a = this.rowBytes, b = this.pixBytes, d = this.str.getByte(), c = this.str.getBytes(a); this.eof = !c.length; if (!this.eof) { var g = this.bufferLength, h = this.ensureBuffer(g + a), n = h.subarray(g - a, g); 0 === n.length && (n = new Uint8Array(a)); var m, t; switch (d) { case 0: for (d = 0; d < a; ++d) h[g++] = c[d]; break; case 1: for (d = 0; d < b; ++d) h[g++] = c[d]; for (; d < a; ++d) h[g] = h[g - b] + c[d] & 255, g++; break; case 2: for (d = 0; d < a; ++d) h[g++] = n[d] + c[d] & 255; break; case 3: for (d = 0; d < b; ++d) h[g++] = (n[d] >> 1) + c[d]; for (; d < a; ++d) h[g] = (n[d] + h[g - b] >> 1) + c[d] & 255, g++; break; case 4: for (d = 0; d < b; ++d) m = n[d], t = c[d], h[g++] = m + t; for (; d < a; ++d) { m = n[d]; var x = n[d - b], e = h[g - b]; t = e + m - x; var z = t - e; 0 > z && (z = -z); var y = t - m; 0 > y && (y = -y); var p = t - x; 0 > p && (p = -p); t = c[d]; z <= y && z <= p ? h[g++] = e + t : y <= p ? h[g++] = m + t : h[g++] = x + t } break; default: Q("Unsupported predictor: " + d) } this.bufferLength += a } }; return a }(); b = function () { function a(b, d, c, g) { for (; -1 !== (g = b.getByte()) ;) if (255 === g) { b.skip(-1); break } this.stream = b; this.maybeLength = d; this.dict = c; P.call(this, d) } a.prototype = Object.create(P.prototype); Object.defineProperty(a.prototype, "bytes", { get: function () { return N(this, "bytes", this.stream.getBytes(this.maybeLength)) }, configurable: !0 }); a.prototype.ensureBuffer = function (a) { if (!this.bufferLength) try { var b = new J; if (this.forceRGB && this.dict && I(this.dict.get("Decode"))) { var d = this.dict.get("Decode"), c = this.dict.get("BitsPerComponent") || 8, g = d.length, h = new Int32Array(g); a = !1; for (var c = (1 << c) - 1, n = 0; n < g; n += 2) if (h[n] = 256 * (d[n + 1] - d[n]) | 0, h[n + 1] = d[n] * c | 0, 256 !== h[n] || 0 !== h[n + 1]) a = !0; a && (b.decodeTransform = h) } b.parse(this.bytes); var m = b.getData(this.drawWidth, this.drawHeight, this.forceRGB); this.buffer = m; this.bufferLength = m.length; this.eof = !0 } catch (t) { Q("JPEG error: " + t) } }; a.prototype.getBytes = function (a) { this.ensureBuffer(); return this.buffer }; a.prototype.getIR = function (a) { return X(this.bytes, "image/jpeg", a) }; return a }(); var H = function () { function a(b, d, c) { this.stream = b; this.maybeLength = d; this.dict = c; P.call(this, d) } a.prototype = Object.create(P.prototype); Object.defineProperty(a.prototype, "bytes", { get: function () { return N(this, "bytes", this.stream.getBytes(this.maybeLength)) }, configurable: !0 }); a.prototype.ensureBuffer = function (a) { if (!this.bufferLength) { a = new v; a.parse(this.bytes); var b = a.width, d = a.height, c = a.componentsCount, g = a.tiles.length; if (1 === g) this.buffer = a.tiles[0].items; else { for (var d = new Uint8Array(b * d * c), h = 0; h < g; h++) for (var n = a.tiles[h], m = n.height, t = n.items, x = 0, e = (b * n.top + n.left) * c, z = b * c, n = n.width * c, y = 0; y < m; y++) { var p = t.subarray(x, x + n); d.set(p, e); x += n; e += z } this.buffer = d } this.bufferLength = this.buffer.length; this.eof = !0 } }; return a }(), h = function () { function a(b, d, c) { this.stream = b; this.maybeLength = d; this.dict = c; P.call(this, d) } a.prototype = Object.create(P.prototype); Object.defineProperty(a.prototype, "bytes", { get: function () { return N(this, "bytes", this.stream.getBytes(this.maybeLength)) }, configurable: !0 }); a.prototype.ensureBuffer = function (a) { if (!this.bufferLength) { a = new K; var b = [], d = this.dict.xref, c = d.fetchIfRef(this.dict.get("DecodeParms")); I(c) && (1 < c.length && u("JBIG2 - 'DecodeParms' array with multiple elements not supported."), c = d.fetchIfRef(c[0])); c && c.has("JBIG2Globals") && (d = c.get("JBIG2Globals").getBytes(), b.push({ data: d, start: 0, end: d.length })); b.push({ data: this.bytes, start: 0, end: this.bytes.length }); a = a.parseChunks(b); b = a.length; for (d = 0; d < b; d++) a[d] ^= 255; this.buffer = a; this.bufferLength = b; this.eof = !0 } }; return a }(), c = function () { function a(b, d, c) { this.str = b; this.dict = b.dict; this.decrypt = c; this.nextChunk = null; this.initialized = !1; P.call(this, d) } a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { var a; this.initialized ? a = this.nextChunk : (a = this.str.getBytes(512), this.initialized = !0); if (a && 0 !== a.length) { this.nextChunk = this.str.getBytes(512); var b = this.decrypt; a = b(a, !(this.nextChunk && 0 < this.nextChunk.length)); var b = this.bufferLength, d, c = a.length, g = this.ensureBuffer(b + c); for (d = 0; d < c; d++) g[b++] = a[d]; this.bufferLength = b } else this.eof = !0 }; return a }(), C = function () { function a(b, d) { this.str = b; this.dict = b.dict; this.input = new Uint8Array(5); d && (d *= .8); P.call(this, d) } a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { for (var a = this.str, b = a.getByte() ; 32 === b || 9 === b || 13 === b || 10 === b;) b = a.getByte(); if (-1 === b || 126 === b) this.eof = !0; else { var d = this.bufferLength, c; if (122 === b) { a = this.ensureBuffer(d + 4); for (c = 0; 4 > c; ++c) a[d + c] = 0; this.bufferLength += 4 } else { var g = this.input; g[0] = b; for (c = 1; 5 > c; ++c) { for (b = a.getByte() ; 32 === b || 9 === b || 13 === b || 10 === b;) b = a.getByte(); g[c] = b; if (-1 === b || 126 === b) break } a = this.ensureBuffer(d + c - 1); this.bufferLength += c - 1; if (5 > c) { for (; 5 > c; ++c) g[c] = 117; this.eof = !0 } for (c = b = 0; 5 > c; ++c) b = 85 * b + (g[c] - 33); for (c = 3; 0 <= c; --c) a[d + c] = b & 255, b >>= 8 } } }; return a }(), F = function () { function a(b, d) { this.str = b; this.dict = b.dict; this.firstDigit = -1; d && (d *= .5); P.call(this, d) } a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { var a = this.str.getBytes(8E3); if (a.length) { for (var b = this.ensureBuffer(this.bufferLength + (a.length + 1 >> 1)), d = this.bufferLength, c = this.firstDigit, g = 0, h = a.length; g < h; g++) { var n = a[g]; if (48 <= n && 57 >= n) n &= 15; else if (65 <= n && 70 >= n || 97 <= n && 102 >= n) n = (n & 15) + 9; else if (62 === n) { this.eof = !0; break } else continue; 0 > c ? c = n : (b[d++] = c << 4 | n, c = -1) } 0 <= c && this.eof && (b[d++] = c << 4, c = -1); this.firstDigit = c; this.bufferLength = d } else this.eof = !0 }; return a }(), n = function () { function a(b, d) { this.str = b; this.dict = b.dict; P.call(this, d) } a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { var a = this.str.getBytes(2); if (!a || 2 > a.length || 128 === a[0]) this.eof = !0; else { var b, d = this.bufferLength, c = a[0]; if (128 > c) b = this.ensureBuffer(d + c + 1), b[d++] = a[1], 0 < c && (a = this.str.getBytes(c), b.set(a, d), d += c); else { c = 257 - c; a = a[1]; b = this.ensureBuffer(d + c + 1); for (var g = 0; g < c; g++) b[d++] = a } this.bufferLength = d } }; return a }(), A = function () { function a(b, f, d) { this.str = b; this.dict = b.dict; d = d || G.empty; this.encoding = d.get("K") || 0; this.eoline = d.get("EndOfLine") || !1; this.byteAlign = d.get("EncodedByteAlign") || !1; this.columns = d.get("Columns") || 1728; this.rows = d.get("Rows") || 0; b = d.get("EndOfBlock"); if (null === b || void 0 === b) b = !0; this.eoblock = b; this.black = d.get("BlackIs1") || !1; this.codingLine = new Uint32Array(this.columns + 1); this.refLine = new Uint32Array(this.columns + 2); this.codingLine[0] = this.columns; this.row = this.codingPos = 0; this.nextLine2D = 0 > this.encoding; for (this.outputBits = this.inputBuf = this.inputBits = 0; 0 === (d = this.lookBits(12)) ;) this.eatBits(1); 1 === d && this.eatBits(12); 0 < this.encoding && (this.nextLine2D = !this.lookBits(1), this.eatBits(1)); P.call(this, f) } var b = [[-1, -1], [-1, -1], [7, 8], [7, 7], [6, 6], [6, 6], [6, 5], [6, 5], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [3, 3], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]], c = [[-1, -1], [12, -2], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]], g = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]], h = [[-1, -1], [-1, -1], [12, -2], [12, -2], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]], n = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]], m = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]]; a.prototype = Object.create(P.prototype); a.prototype.readBlock = function () { for (; !this.eof;) { var a = this.lookChar(); this.ensureBuffer(this.bufferLength + 1); this.buffer[this.bufferLength++] = a } }; a.prototype.addPixels = function (a, b) { var d = this.codingLine, f = this.codingPos; a > d[f] && (a > this.columns && (k("row is wrong length"), this.err = !0, a = this.columns), f & 1 ^ b && ++f, d[f] = a); this.codingPos = f }; a.prototype.addPixelsNeg = function (a, b) { var d = this.codingLine, f = this.codingPos; if (a > d[f]) a > this.columns && (k("row is wrong length"), this.err = !0, a = this.columns), f & 1 ^ b && ++f, d[f] = a; else if (a < d[f]) { 0 > a && (k("invalid code"), this.err = !0, a = 0); for (; 0 < f && a < d[f - 1];)--f; d[f] = a } this.codingPos = f }; a.prototype.lookChar = function () { var a = this.refLine, b = this.codingLine, d = this.columns, f, c, g; if (0 === this.outputBits) { if (this.eof) return null; this.err = !1; var h, p; if (this.nextLine2D) { for (f = 0; b[f] < d; ++f) a[f] = b[f]; a[f++] = d; a[f] = d; for (c = f = this.codingPos = b[0] = 0; b[this.codingPos] < d;) switch (g = this.getTwoDimCode(), g) { case 0: this.addPixels(a[f + 1], c); a[f + 1] < d && (f += 2); break; case 1: g = h = 0; if (c) { do g += p = this.getBlackCode(); while (64 <= p); do h += p = this.getWhiteCode(); while (64 <= p) } else { do g += p = this.getWhiteCode(); while (64 <= p); do h += p = this.getBlackCode(); while (64 <= p) } this.addPixels(b[this.codingPos] + g, c); for (b[this.codingPos] < d && this.addPixels(b[this.codingPos] + h, c ^ 1) ; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 7: this.addPixels(a[f] + 3, c); c ^= 1; if (b[this.codingPos] < d) for (++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 5: this.addPixels(a[f] + 2, c); c ^= 1; if (b[this.codingPos] < d) for (++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 3: this.addPixels(a[f] + 1, c); c ^= 1; if (b[this.codingPos] < d) for (++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 2: this.addPixels(a[f], c); c ^= 1; if (b[this.codingPos] < d) for (++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 8: this.addPixelsNeg(a[f] - 3, c); c ^= 1; if (b[this.codingPos] < d) for (0 < f ? --f : ++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 6: this.addPixelsNeg(a[f] - 2, c); c ^= 1; if (b[this.codingPos] < d) for (0 < f ? --f : ++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case 4: this.addPixelsNeg(a[f] - 1, c); c ^= 1; if (b[this.codingPos] < d) for (0 < f ? --f : ++f; a[f] <= b[this.codingPos] && a[f] < d;) f += 2; break; case -1: this.addPixels(d, 0); this.eof = !0; break; default: k("bad 2d code"), this.addPixels(d, 0), this.err = !0 } } else for (c = this.codingPos = b[0] = 0; b[this.codingPos] < d;) { g = 0; if (c) { do g += p = this.getBlackCode(); while (64 <= p) } else { do g += p = this.getWhiteCode(); while (64 <= p) } this.addPixels(b[this.codingPos] + g, c); c ^= 1 } a = !1; this.byteAlign && (this.inputBits &= -8); if (this.eoblock || this.row !== this.rows - 1) { g = this.lookBits(12); if (this.eoline) for (; -1 !== g && 1 !== g;) this.eatBits(1), g = this.lookBits(12); else for (; 0 === g;) this.eatBits(1), g = this.lookBits(12); 1 === g ? (this.eatBits(12), a = !0) : -1 === g && (this.eof = !0) } else this.eof = !0; !this.eof && 0 < this.encoding && (this.nextLine2D = !this.lookBits(1), this.eatBits(1)); if (this.eoblock && a && this.byteAlign) { if (g = this.lookBits(12), 1 === g) { this.eatBits(12); 0 < this.encoding && (this.lookBits(1), this.eatBits(1)); if (0 <= this.encoding) for (f = 0; 4 > f; ++f) g = this.lookBits(12), 1 !== g && k("bad rtc code: " + g), this.eatBits(12), 0 < this.encoding && (this.lookBits(1), this.eatBits(1)); this.eof = !0 } } else if (this.err && this.eoline) { for (; ;) { g = this.lookBits(13); if (-1 === g) return this.eof = !0, null; if (1 === g >> 1) break; this.eatBits(1) } this.eatBits(12); 0 < this.encoding && (this.eatBits(1), this.nextLine2D = !(g & 1)) } this.outputBits = 0 < b[0] ? b[this.codingPos = 0] : b[this.codingPos = 1]; this.row++ } if (8 <= this.outputBits) a = this.codingPos & 1 ? 0 : 255, this.outputBits -= 8, 0 === this.outputBits && b[this.codingPos] < d && (this.codingPos++, this.outputBits = b[this.codingPos] - b[this.codingPos - 1]); else { g = 8; a = 0; do this.outputBits > g ? (a <<= g, this.codingPos & 1 || (a |= 255 >> 8 - g), this.outputBits -= g, g = 0) : (a <<= this.outputBits, this.codingPos & 1 || (a |= 255 >> 8 - this.outputBits), g -= this.outputBits, this.outputBits = 0, b[this.codingPos] < d ? (this.codingPos++, this.outputBits = b[this.codingPos] - b[this.codingPos - 1]) : 0 < g && (a <<= g, g = 0)); while (g) } this.black && (a ^= 255); return a }; a.prototype.findTableCode = function (a, b, f, d) { for (d = d || 0; a <= b; ++a) { var c = this.lookBits(a); if (-1 === c) return [!0, 1, !1]; a < b && (c <<= b - a); if (!d || c >= d) if (c = f[c - d], c[0] === a) return this.eatBits(a), [!0, c[1], !0] } return [!1, 0, !1] }; a.prototype.getTwoDimCode = function () { var a = 0; if (this.eoblock) { if (a = this.lookBits(7), (a = b[a]) && 0 < a[0]) return this.eatBits(a[0]), a[1] } else if (a = this.findTableCode(1, 7, b), a[0] && a[2]) return a[1]; k("Bad two dim code"); return -1 }; a.prototype.getWhiteCode = function () { var a = 0; if (this.eoblock) { a = this.lookBits(12); if (-1 === a) return 1; a = 0 === a >> 5 ? c[a] : g[a >> 3]; if (0 < a[0]) return this.eatBits(a[0]), a[1] } else { a = this.findTableCode(1, 9, g); if (a[0]) return a[1]; a = this.findTableCode(11, 12, c); if (a[0]) return a[1] } k("bad white code"); this.eatBits(1); return 1 }; a.prototype.getBlackCode = function () { var a; if (this.eoblock) { a = this.lookBits(13); if (-1 === a) return 1; a = 0 === a >> 7 ? h[a] : 0 === a >> 9 && 0 !== a >> 7 ? n[(a >> 1) - 64] : m[a >> 7]; if (0 < a[0]) return this.eatBits(a[0]), a[1] } else { a = this.findTableCode(2, 6, m); if (a[0]) return a[1]; a = this.findTableCode(7, 12, n, 64); if (a[0]) return a[1]; a = this.findTableCode(10, 13, h); if (a[0]) return a[1] } k("bad black code"); this.eatBits(1); return 1 }; a.prototype.lookBits = function (a) { for (var b; this.inputBits < a;) { if (-1 === (b = this.str.getByte())) return 0 === this.inputBits ? -1 : this.inputBuf << a - this.inputBits & 65535 >> 16 - a; this.inputBuf = this.inputBuf << 8 | b; this.inputBits += 8 } return this.inputBuf >> this.inputBits - a & 65535 >> 16 - a }; a.prototype.eatBits = function (a) { 0 > (this.inputBits -= a) && (this.inputBits = 0) }; return a }(), g = function () { function a(b, d, c) { this.str = b; this.dict = b.dict; this.bitsCached = this.cachedData = 0; b = { earlyChange: c, codeLength: 9, nextCode: 258, dictionaryValues: new Uint8Array(4096), dictionaryLengths: new Uint16Array(4096), dictionaryPrevCodes: new Uint16Array(4096), currentSequence: new Uint8Array(4096), currentSequenceLength: 0 }; for (c = 0; 256 > c; ++c) b.dictionaryValues[c] = c, b.dictionaryLengths[c] = 1; this.lzwState = b; P.call(this, d) } a.prototype = Object.create(P.prototype); a.prototype.readBits = function (a) { for (var b = this.bitsCached, d = this.cachedData; b < a;) { var c = this.str.getByte(); if (-1 === c) return this.eof = !0, null; d = d << 8 | c; b += 8 } this.bitsCached = b -= a; this.cachedData = d; this.lastCode = null; return d >>> b & (1 << a) - 1 }; a.prototype.readBlock = function () { var a = 1024, b, d, c, g = this.lzwState; if (g) { var h = g.earlyChange, n = g.nextCode, m = g.dictionaryValues, t = g.dictionaryLengths, e = g.dictionaryPrevCodes, k = g.codeLength, z = g.prevCode, y = g.currentSequence, p = g.currentSequenceLength, D = 0, l = this.bufferLength, A = this.ensureBuffer(this.bufferLength + a); for (b = 0; 512 > b; b++) { var F = this.readBits(k), v = 0 < p; if (256 > F) y[0] = F, p = 1; else if (258 <= F) if (F < n) for (p = t[F], d = p - 1, c = F; 0 <= d; d--) y[d] = m[c], c = e[c]; else y[p++] = y[0]; else if (256 === F) { k = 9; n = 258; p = 0; continue } else { this.eof = !0; delete this.lzwState; break } v && (e[n] = z, t[n] = t[z] + 1, m[n] = y[0], n++, k = n + h & n + h - 1 ? k : Math.min(Math.log(n + h) / .6931471805599453 + 1, 12) | 0); z = F; D += p; if (a < D) { do a += 512; while (a < D); A = this.ensureBuffer(this.bufferLength + a) } for (d = 0; d < p; d++) A[l++] = y[d] } g.nextCode = n; g.codeLength = k; g.prevCode = z; g.currentSequenceLength = p; this.bufferLength = l } }; return a }(), m = function () { function a() { r.call(this, new Uint8Array(0)) } a.prototype = r.prototype; return a }(); e.Ascii85Stream = C; e.AsciiHexStream = F; e.CCITTFaxStream = A; e.DecryptStream = c; e.DecodeStream = P; e.FlateStream = O; e.Jbig2Stream = h; e.JpegStream = b; e.JpxStream = H; e.NullStream = m; e.PredictorStream = a; e.RunLengthStream = n; e.Stream = r; e.StreamsSequenceStream = R; e.StringStream = l; e.LZWStream = g }); (function (e, l) { l(e.pdfjsCoreCrypto = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream) })(this, function (e, l, R, O) { var a = l.PasswordException, b = l.PasswordResponses, L = l.bytesToString, Q = l.error, k = l.isInt, I = l.stringToBytes, X = l.utf8StringToString, N = l.warn, u = R.Name, G = R.isName, M = R.isDict, K = O.DecryptStream, J = function () { function a(b) { this.b = this.a = 0; var f = new Uint8Array(256), c, g = 0, h, n = b.length; for (c = 0; 256 > c; ++c) f[c] = c; for (c = 0; 256 > c; ++c) h = f[c], g = g + h + b[c % n] & 255, f[c] = f[g], f[g] = h; this.s = f } a.prototype = { encryptBlock: function (a) { var b, c = a.length, g, h, n = this.a, m = this.b, e = this.s, k = new Uint8Array(c); for (b = 0; b < c; ++b) n = n + 1 & 255, g = e[n], m = m + g & 255, h = e[m], e[n] = h, e[m] = g, k[b] = a[b] ^ e[g + h & 255]; this.a = n; this.b = m; return k } }; a.prototype.decryptBlock = a.prototype.encryptBlock; return a }(), v = function () { var a = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]), b = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]); return function (f, c, g) { var h = 1732584193, n = -271733879, e = -1732584194, k = 271733878, E = g + 72 & -64, t = new Uint8Array(E), x; for (x = 0; x < g; ++x) t[x] = f[c++]; t[x++] = 128; for (f = E - 8; x < f;) t[x++] = 0; t[x++] = g << 3 & 255; t[x++] = g >> 5 & 255; t[x++] = g >> 13 & 255; t[x++] = g >> 21 & 255; t[x++] = g >>> 29 & 255; t[x++] = 0; t[x++] = 0; t[x++] = 0; f = new Int32Array(16); for (x = 0; x < E;) { for (g = 0; 16 > g; ++g, x += 4) f[g] = t[x] | t[x + 1] << 8 | t[x + 2] << 16 | t[x + 3] << 24; var l = h; c = n; var z = e, y = k, p, D; for (g = 0; 64 > g; ++g) { 16 > g ? (p = c & z | ~c & y, D = g) : 32 > g ? (p = y & c | ~y & z, D = 5 * g + 1 & 15) : 48 > g ? (p = c ^ z ^ y, D = 3 * g + 5 & 15) : (p = z ^ (c | ~y), D = 7 * g & 15); var A = y, l = l + p + b[g] + f[D] | 0; p = a[g]; y = z; z = c; c = c + (l << p | l >>> 32 - p) | 0; l = A } h = h + l | 0; n = n + c | 0; e = e + z | 0; k = k + y | 0 } return new Uint8Array([h & 255, h >> 8 & 255, h >> 16 & 255, h >>> 24 & 255, n & 255, n >> 8 & 255, n >> 16 & 255, n >>> 24 & 255, e & 255, e >> 8 & 255, e >> 16 & 255, e >>> 24 & 255, k & 255, k >> 8 & 255, k >> 16 & 255, k >>> 24 & 255]) } }(), r = function () { function a(b, f) { this.high = b | 0; this.low = f | 0 } a.prototype = { and: function (a) { this.high &= a.high; this.low &= a.low }, xor: function (a) { this.high ^= a.high; this.low ^= a.low }, or: function (a) { this.high |= a.high; this.low |= a.low }, shiftRight: function (a) { 32 <= a ? (this.low = this.high >>> a - 32 | 0, this.high = 0) : (this.low = this.low >>> a | this.high << 32 - a, this.high = this.high >>> a | 0) }, shiftLeft: function (a) { 32 <= a ? (this.high = this.low << a - 32, this.low = 0) : (this.high = this.high << a | this.low >>> 32 - a, this.low <<= a) }, rotateRight: function (a) { var b, c; a & 32 ? (c = this.low, b = this.high) : (b = this.low, c = this.high); a &= 31; this.low = b >>> a | c << 32 - a; this.high = c >>> a | b << 32 - a }, not: function () { this.high = ~this.high; this.low = ~this.low }, add: function (a) { var b = (this.low >>> 0) + (a.low >>> 0); a = (this.high >>> 0) + (a.high >>> 0); 4294967295 < b && (a += 1); this.low = b | 0; this.high = a | 0 }, copyTo: function (a, b) { a[b] = this.high >>> 24 & 255; a[b + 1] = this.high >> 16 & 255; a[b + 2] = this.high >> 8 & 255; a[b + 3] = this.high & 255; a[b + 4] = this.low >>> 24 & 255; a[b + 5] = this.low >> 16 & 255; a[b + 6] = this.low >> 8 & 255; a[b + 7] = this.low & 255 }, assign: function (a) { this.high = a.high; this.low = a.low } }; return a }(), P = function () { function a(b, d) { return b >>> d | b << 32 - d } var b = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; return function (f, c, g) { var h = 1779033703, n = 3144134277, e = 1013904242, k = 2773480762, E = 1359893119, t = 2600822924, x = 528734635, l = 1541459225, z = 64 * Math.ceil((g + 9) / 64), y = new Uint8Array(z), p; for (p = 0; p < g; ++p) y[p] = f[c++]; y[p++] = 128; for (f = z - 8; p < f;) y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = g >>> 29 & 255; y[p++] = g >> 21 & 255; y[p++] = g >> 13 & 255; y[p++] = g >> 5 & 255; y[p++] = g << 3 & 255; f = new Uint32Array(64); for (p = 0; p < z;) { for (g = 0; 16 > g; ++g) f[g] = y[p] << 24 | y[p + 1] << 16 | y[p + 2] << 8 | y[p + 3], p += 4; for (g = 16; 64 > g; ++g) { c = g; var D = f[g - 2], D = (a(D, 17) ^ a(D, 19) ^ D >>> 10) + f[g - 7], A; A = f[g - 15]; A = a(A, 7) ^ a(A, 18) ^ A >>> 3; f[c] = D + A + f[g - 16] | 0 } c = h; D = n; A = e; var F = k, v = E, C = t, r = x, H = l, u, J; for (g = 0; 64 > g; ++g) u = H, H = v, H = a(H, 6) ^ a(H, 11) ^ a(H, 25), u = u + H + (v & C ^ ~v & r) + b[g] + f[g], H = c, J = (a(H, 2) ^ a(H, 13) ^ a(H, 22)) + (c & D ^ c & A ^ D & A), H = r, r = C, C = v, v = F + u | 0, F = A, A = D, D = c, c = u + J | 0; h = h + c | 0; n = n + D | 0; e = e + A | 0; k = k + F | 0; E = E + v | 0; t = t + C | 0; x = x + r | 0; l = l + H | 0 } return new Uint8Array([h >> 24 & 255, h >> 16 & 255, h >> 8 & 255, h & 255, n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, n & 255, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, e & 255, k >> 24 & 255, k >> 16 & 255, k >> 8 & 255, k & 255, E >> 24 & 255, E >> 16 & 255, E >> 8 & 255, E & 255, t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, t & 255, x >> 24 & 255, x >> 16 & 255, x >> 8 & 255, x & 255, l >> 24 & 255, l >> 16 & 255, l >> 8 & 255, l & 255]) } }(), H = function () { var a = [new r(1116352408, 3609767458), new r(1899447441, 602891725), new r(3049323471, 3964484399), new r(3921009573, 2173295548), new r(961987163, 4081628472), new r(1508970993, 3053834265), new r(2453635748, 2937671579), new r(2870763221, 3664609560), new r(3624381080, 2734883394), new r(310598401, 1164996542), new r(607225278, 1323610764), new r(1426881987, 3590304994), new r(1925078388, 4068182383), new r(2162078206, 991336113), new r(2614888103, 633803317), new r(3248222580, 3479774868), new r(3835390401, 2666613458), new r(4022224774, 944711139), new r(264347078, 2341262773), new r(604807628, 2007800933), new r(770255983, 1495990901), new r(1249150122, 1856431235), new r(1555081692, 3175218132), new r(1996064986, 2198950837), new r(2554220882, 3999719339), new r(2821834349, 766784016), new r(2952996808, 2566594879), new r(3210313671, 3203337956), new r(3336571891, 1034457026), new r(3584528711, 2466948901), new r(113926993, 3758326383), new r(338241895, 168717936), new r(666307205, 1188179964), new r(773529912, 1546045734), new r(1294757372, 1522805485), new r(1396182291, 2643833823), new r(1695183700, 2343527390), new r(1986661051, 1014477480), new r(2177026350, 1206759142), new r(2456956037, 344077627), new r(2730485921, 1290863460), new r(2820302411, 3158454273), new r(3259730800, 3505952657), new r(3345764771, 106217008), new r(3516065817, 3606008344), new r(3600352804, 1432725776), new r(4094571909, 1467031594), new r(275423344, 851169720), new r(430227734, 3100823752), new r(506948616, 1363258195), new r(659060556, 3750685593), new r(883997877, 3785050280), new r(958139571, 3318307427), new r(1322822218, 3812723403), new r(1537002063, 2003034995), new r(1747873779, 3602036899), new r(1955562222, 1575990012), new r(2024104815, 1125592928), new r(2227730452, 2716904306), new r(2361852424, 442776044), new r(2428436474, 593698344), new r(2756734187, 3733110249), new r(3204031479, 2999351573), new r(3329325298, 3815920427), new r(3391569614, 3928383900), new r(3515267271, 566280711), new r(3940187606, 3454069534), new r(4118630271, 4000239992), new r(116418474, 1914138554), new r(174292421, 2731055270), new r(289380356, 3203993006), new r(460393269, 320620315), new r(685471733, 587496836), new r(852142971, 1086792851), new r(1017036298, 365543100), new r(1126000580, 2618297676), new r(1288033470, 3409855158), new r(1501505948, 4234509866), new r(1607167915, 987167468), new r(1816402316, 1246189591)]; return function (b, f, c, g) { g = !!g; var h, n, e, k, E, t, x, l; g ? (h = new r(3418070365, 3238371032), n = new r(1654270250, 914150663), e = new r(2438529370, 812702999), k = new r(355462360, 4144912697), E = new r(1731405415, 4290775857), t = new r(2394180231, 1750603025), x = new r(3675008525, 1694076839), l = new r(1203062813, 3204075428)) : (h = new r(1779033703, 4089235720), n = new r(3144134277, 2227873595), e = new r(1013904242, 4271175723), k = new r(2773480762, 1595750129), E = new r(1359893119, 2917565137), t = new r(2600822924, 725511199), x = new r(528734635, 4215389547), l = new r(1541459225, 327033209)); var z = 128 * Math.ceil((c + 17) / 128), y = new Uint8Array(z), p; for (p = 0; p < c; ++p) y[p] = b[f++]; y[p++] = 128; for (b = z - 16; p < b;) y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = 0; y[p++] = c >>> 29 & 255; y[p++] = c >> 21 & 255; y[p++] = c >> 13 & 255; y[p++] = c >> 5 & 255; y[p++] = c << 3 & 255; b = Array(80); for (p = 0; 80 > p; p++) b[p] = new r(0, 0); f = new r(0, 0); var D = new r(0, 0), A = new r(0, 0), F = new r(0, 0), v = new r(0, 0), C = new r(0, 0), H = new r(0, 0), u = new r(0, 0), J = new r(0, 0), M = new r(0, 0), K = new r(0, 0), P = new r(0, 0), G; for (p = 0; p < z;) { for (c = 0; 16 > c; ++c) b[c].high = y[p] << 24 | y[p + 1] << 16 | y[p + 2] << 8 | y[p + 3], b[c].low = y[p + 4] << 24 | y[p + 5] << 16 | y[p + 6] << 8 | y[p + 7], p += 8; for (c = 16; 80 > c; ++c) { var I = G = b[c], N = b[c - 2], L = P; I.assign(N); I.rotateRight(19); L.assign(N); L.rotateRight(61); I.xor(L); L.assign(N); L.shiftRight(6); I.xor(L); G.add(b[c - 7]); I = K; N = b[c - 15]; L = P; I.assign(N); I.rotateRight(1); L.assign(N); L.rotateRight(8); I.xor(L); L.assign(N); L.shiftRight(7); I.xor(L); G.add(K); G.add(b[c - 16]) } f.assign(h); D.assign(n); A.assign(e); F.assign(k); v.assign(E); C.assign(t); H.assign(x); u.assign(l); for (c = 0; 80 > c; ++c) { J.assign(u); G = K; I = v; N = P; G.assign(I); G.rotateRight(14); N.assign(I); N.rotateRight(18); G.xor(N); N.assign(I); N.rotateRight(41); G.xor(N); J.add(K); G = K; var I = v, N = C, L = H, O = P; G.assign(I); G.and(N); O.assign(I); O.not(); O.and(L); G.xor(O); J.add(K); J.add(a[c]); J.add(b[c]); G = M; I = f; N = P; G.assign(I); G.rotateRight(28); N.assign(I); N.rotateRight(34); G.xor(N); N.assign(I); N.rotateRight(39); G.xor(N); G = K; I = f; N = D; L = A; O = P; G.assign(I); G.and(N); O.assign(I); O.and(L); G.xor(O); O.assign(N); O.and(L); G.xor(O); M.add(K); G = u; u = H; H = C; C = v; F.add(J); v = F; F = A; A = D; D = f; G.assign(J); G.add(M); f = G } h.add(f); n.add(D); e.add(A); k.add(F); E.add(v); t.add(C); x.add(H); l.add(u) } g ? (g = new Uint8Array(48), h.copyTo(g, 0), n.copyTo(g, 8), e.copyTo(g, 16), k.copyTo(g, 24), E.copyTo(g, 32), t.copyTo(g, 40)) : (g = new Uint8Array(64), h.copyTo(g, 0), n.copyTo(g, 8), e.copyTo(g, 16), k.copyTo(g, 24), E.copyTo(g, 32), t.copyTo(g, 40), x.copyTo(g, 48), l.copyTo(g, 56)); return g } }(), h = function () { return function (a, b, f) { return H(a, b, f, !0) } }(), c = function () { function a() { } a.prototype = { decryptBlock: function (a) { return a } }; return a }(), C = function () { function a(b) { var d = new Uint8Array(176); d.set(b); b = 16; for (var g = 1; 176 > b; ++g) for (var h = d[b - 3], n = d[b - 2], m = d[b - 1], e = d[b - 4], h = c[h], n = c[n], m = c[m], e = c[e], h = h ^ f[g], p = 0; 4 > p; ++p) d[b] = h ^= d[b - 16], b++, d[b] = n ^= d[b - 16], b++, d[b] = m ^= d[b - 16], b++, d[b] = e ^= d[b - 16], b++; this.key = d; this.buffer = new Uint8Array(16); this.bufferPosition = 0 } function b(a, f) { var d, c, h; h = a.length; var n = this.buffer; c = this.bufferPosition; var m = [], p = this.iv; for (d = 0; d < h; ++d) if (n[c] = a[d], ++c, !(16 > c)) { var D, k = n; c = this.key; D = new Uint8Array(16); D.set(k); for (var q = k = void 0, l = void 0, A = q = l = void 0, q = 0, l = 160; 16 > q; ++q, ++l) D[q] ^= c[l]; for (k = 9; 1 <= k; --k) { l = D[13]; D[13] = D[9]; D[9] = D[5]; D[5] = D[1]; D[1] = l; l = D[14]; q = D[10]; D[14] = D[6]; D[10] = D[2]; D[6] = l; D[2] = q; l = D[15]; q = D[11]; A = D[7]; D[15] = D[3]; D[11] = l; D[7] = q; D[3] = A; for (q = 0; 16 > q; ++q) D[q] = g[D[q]]; q = 0; for (l = 16 * k; 16 > q; ++q, ++l) D[q] ^= c[l]; for (q = 0; 16 > q; q += 4) { var l = e[D[q + 1]], A = e[D[q + 2]], F = e[D[q + 3]], l = e[D[q]] ^ l >>> 8 ^ l << 24 ^ A >>> 16 ^ A << 16 ^ F >>> 24 ^ F << 8; D[q] = l >>> 24 & 255; D[q + 1] = l >> 16 & 255; D[q + 2] = l >> 8 & 255; D[q + 3] = l & 255 } } l = D[13]; D[13] = D[9]; D[9] = D[5]; D[5] = D[1]; D[1] = l; l = D[14]; q = D[10]; D[14] = D[6]; D[10] = D[2]; D[6] = l; D[2] = q; l = D[15]; q = D[11]; A = D[7]; D[15] = D[3]; D[11] = l; D[7] = q; D[3] = A; for (q = 0; 16 > q; ++q) D[q] = g[D[q]], D[q] ^= c[q]; for (c = 0; 16 > c; ++c) D[c] ^= p[c]; p = n; m.push(D); n = new Uint8Array(16); c = 0 } this.buffer = n; this.bufferLength = c; this.iv = p; if (0 === m.length) return new Uint8Array([]); n = 16 * m.length; if (f && (p = m[m.length - 1], c = p[15], 16 >= c)) { d = 15; for (h = 16 - c; d >= h; --d) if (p[d] !== c) { c = 0; break } n -= c; m[m.length - 1] = p.subarray(0, 16 - c) } n = new Uint8Array(n); c = d = 0; for (h = m.length; d < h; ++d, c += 16) n.set(m[d], c); return n } for (var f = new Uint8Array([141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141]), c = new Uint8Array([99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]), g = new Uint8Array([82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]), h = new Uint8Array(256), n = 0; 256 > n; n++) h[n] = 128 > n ? n << 1 : n << 1 ^ 27; var e = new Uint32Array([0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795]); a.prototype = { decryptBlock: function (a, f) { var c, g = a.length, h = this.buffer, n = this.bufferPosition; for (c = 0; 16 > n && c < g; ++c, ++n) h[n] = a[c]; if (16 > n) return this.bufferLength = n, new Uint8Array([]); this.iv = h; this.buffer = new Uint8Array(16); this.bufferLength = 0; this.decryptBlock = b; return this.decryptBlock(a.subarray(16), f) }, encrypt: function (a, b) { var f, d, g; g = a.length; var m = this.buffer; d = this.bufferPosition; var e = []; b || (b = new Uint8Array(16)); for (f = 0; f < g; ++f) if (m[d] = a[f], ++d, !(16 > d)) { for (d = 0; 16 > d; ++d) m[d] ^= b[d]; var p = m; d = this.key; var D = void 0, k = void 0, w = void 0, D = void 0, m = new Uint8Array(16); m.set(p); for (p = 0; 16 > p; ++p) m[p] ^= d[p]; for (n = 1; 10 > n; n++) { for (p = 0; 16 > p; ++p) m[p] = c[m[p]]; w = m[1]; m[1] = m[5]; m[5] = m[9]; m[9] = m[13]; m[13] = w; w = m[2]; k = m[6]; m[2] = m[10]; m[6] = m[14]; m[10] = w; m[14] = k; w = m[3]; k = m[7]; D = m[11]; m[3] = m[15]; m[7] = w; m[11] = k; m[15] = D; for (p = 0; 16 > p; p += 4) { var k = m[p + 0], w = m[p + 1], l = m[p + 2], A = m[p + 3], D = k ^ w ^ l ^ A; m[p + 0] = m[p + 0] ^ D ^ h[k ^ w]; m[p + 1] = m[p + 1] ^ D ^ h[w ^ l]; m[p + 2] = m[p + 2] ^ D ^ h[l ^ A]; m[p + 3] = m[p + 3] ^ D ^ h[A ^ k] } p = 0; for (D = 16 * n; 16 > p; ++p, ++D) m[p] ^= d[D] } for (p = 0; 16 > p; ++p) m[p] = c[m[p]]; w = m[1]; m[1] = m[5]; m[5] = m[9]; m[9] = m[13]; m[13] = w; w = m[2]; k = m[6]; m[2] = m[10]; m[6] = m[14]; m[10] = w; m[14] = k; w = m[3]; k = m[7]; D = m[11]; m[3] = m[15]; m[7] = w; m[11] = k; m[15] = D; p = 0; for (D = 160; 16 > p; ++p, ++D) m[p] ^= d[D]; b = d = m; e.push(d); m = new Uint8Array(16); d = 0 } this.buffer = m; this.bufferLength = d; this.iv = b; if (0 === e.length) return new Uint8Array([]); m = new Uint8Array(16 * e.length); d = f = 0; for (g = e.length; f < g; ++f, d += 16) m.set(e[f], d); return m } }; return a }(), F = function () { function a(b) { var d = new Uint8Array(240), c = 1; d.set(b); b = 32; for (var g = 1; 240 > b; ++g) { if (16 === b % 32) h = f[h], n = f[n], m = f[m], e = f[e]; else if (0 === b % 32) { var h = d[b - 3], n = d[b - 2], m = d[b - 1], e = d[b - 4], h = f[h], n = f[n], m = f[m], e = f[e], h = h ^ c; 256 <= (c <<= 1) && (c = (c ^ 27) & 255) } for (var p = 0; 4 > p; ++p) d[b] = h ^= d[b - 32], b++, d[b] = n ^= d[b - 32], b++, d[b] = m ^= d[b - 32], b++, d[b] = e ^= d[b - 32], b++ } this.key = d; this.buffer = new Uint8Array(16); this.bufferPosition = 0 } function b(a, f) { var d, g, h; h = a.length; var m = this.buffer; g = this.bufferPosition; var e = [], y = this.iv; for (d = 0; d < h; ++d) if (m[g] = a[d], ++g, !(16 > g)) { var p, D = m; g = this.key; p = new Uint8Array(16); p.set(D); for (var k = D = void 0, w = void 0, l = k = w = void 0, k = 0, w = 224; 16 > k; ++k, ++w) p[k] ^= g[w]; for (D = 13; 1 <= D; --D) { w = p[13]; p[13] = p[9]; p[9] = p[5]; p[5] = p[1]; p[1] = w; w = p[14]; k = p[10]; p[14] = p[6]; p[10] = p[2]; p[6] = w; p[2] = k; w = p[15]; k = p[11]; l = p[7]; p[15] = p[3]; p[11] = w; p[7] = k; p[3] = l; for (k = 0; 16 > k; ++k) p[k] = c[p[k]]; k = 0; for (w = 16 * D; 16 > k; ++k, ++w) p[k] ^= g[w]; for (k = 0; 16 > k; k += 4) { var w = n[p[k + 1]], l = n[p[k + 2]], A = n[p[k + 3]], w = n[p[k]] ^ w >>> 8 ^ w << 24 ^ l >>> 16 ^ l << 16 ^ A >>> 24 ^ A << 8; p[k] = w >>> 24 & 255; p[k + 1] = w >> 16 & 255; p[k + 2] = w >> 8 & 255; p[k + 3] = w & 255 } } w = p[13]; p[13] = p[9]; p[9] = p[5]; p[5] = p[1]; p[1] = w; w = p[14]; k = p[10]; p[14] = p[6]; p[10] = p[2]; p[6] = w; p[2] = k; w = p[15]; k = p[11]; l = p[7]; p[15] = p[3]; p[11] = w; p[7] = k; p[3] = l; for (k = 0; 16 > k; ++k) p[k] = c[p[k]], p[k] ^= g[k]; for (g = 0; 16 > g; ++g) p[g] ^= y[g]; y = m; e.push(p); m = new Uint8Array(16); g = 0 } this.buffer = m; this.bufferLength = g; this.iv = y; if (0 === e.length) return new Uint8Array([]); m = 16 * e.length; if (f && (y = e[e.length - 1], g = y[15], 16 >= g)) { d = 15; for (h = 16 - g; d >= h; --d) if (y[d] !== g) { g = 0; break } m -= g; e[e.length - 1] = y.subarray(0, 16 - g) } m = new Uint8Array(m); g = d = 0; for (h = e.length; d < h; ++d, g += 16) m.set(e[d], g); return m } new Uint8Array([141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141]); for (var f = new Uint8Array([99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]), c = new Uint8Array([82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]), g = new Uint8Array(256), h = 0; 256 > h; h++) g[h] = 128 > h ? h << 1 : h << 1 ^ 27; var n = new Uint32Array([0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795]); a.prototype = { decryptBlock: function (a, f, c) { var g = a.length, h = this.buffer, n = this.bufferPosition; if (c) this.iv = c; else { for (c = 0; 16 > n && c < g; ++c, ++n) h[n] = a[c]; if (16 > n) return this.bufferLength = n, new Uint8Array([]); this.iv = h; a = a.subarray(16) } this.buffer = new Uint8Array(16); this.bufferLength = 0; this.decryptBlock = b; return this.decryptBlock(a, f) }, encrypt: function (a, b) { var d, c, n; n = a.length; var m = this.buffer; c = this.bufferPosition; var e = []; b || (b = new Uint8Array(16)); for (d = 0; d < n; ++d) if (m[c] = a[d], ++c, !(16 > c)) { for (c = 0; 16 > c; ++c) m[c] ^= b[c]; var k = m; c = this.key; var p = void 0, D = void 0, q = void 0, p = void 0, m = new Uint8Array(16); m.set(k); for (k = 0; 16 > k; ++k) m[k] ^= c[k]; for (h = 1; 14 > h; h++) { for (k = 0; 16 > k; ++k) m[k] = f[m[k]]; q = m[1]; m[1] = m[5]; m[5] = m[9]; m[9] = m[13]; m[13] = q; q = m[2]; D = m[6]; m[2] = m[10]; m[6] = m[14]; m[10] = q; m[14] = D; q = m[3]; D = m[7]; p = m[11]; m[3] = m[15]; m[7] = q; m[11] = D; m[15] = p; for (k = 0; 16 > k; k += 4) { var D = m[k + 0], q = m[k + 1], l = m[k + 2], A = m[k + 3], p = D ^ q ^ l ^ A; m[k + 0] = m[k + 0] ^ p ^ g[D ^ q]; m[k + 1] = m[k + 1] ^ p ^ g[q ^ l]; m[k + 2] = m[k + 2] ^ p ^ g[l ^ A]; m[k + 3] = m[k + 3] ^ p ^ g[A ^ D] } k = 0; for (p = 16 * h; 16 > k; ++k, ++p) m[k] ^= c[p] } for (k = 0; 16 > k; ++k) m[k] = f[m[k]]; q = m[1]; m[1] = m[5]; m[5] = m[9]; m[9] = m[13]; m[13] = q; q = m[2]; D = m[6]; m[2] = m[10]; m[6] = m[14]; m[10] = q; m[14] = D; q = m[3]; D = m[7]; p = m[11]; m[3] = m[15]; m[7] = q; m[11] = D; m[15] = p; k = 0; for (p = 224; 16 > k; ++k, ++p) m[k] ^= c[p]; this.iv = c = m; e.push(c); m = new Uint8Array(16); c = 0 } this.buffer = m; this.bufferLength = c; this.iv = b; if (0 === e.length) return new Uint8Array([]); m = new Uint8Array(16 * e.length); c = d = 0; for (n = e.length; d < n; ++d, c += 16) m.set(e[d], c); return m } }; return a }(), n = function () { function a(b, d) { if (b.length !== d.length) return !1; for (var c = 0; c < b.length; c++) if (b[c] !== d[c]) return !1; return !0 } function b() { } b.prototype = { checkOwnerPassword: function (b, d, c, g) { var h = new Uint8Array(b.length + 56); h.set(b, 0); h.set(d, b.length); h.set(c, b.length + d.length); b = P(h, 0, h.length); return a(b, g) }, checkUserPassword: function (b, d, c) { var g = new Uint8Array(b.length + 8); g.set(b, 0); g.set(d, b.length); b = P(g, 0, g.length); return a(b, c) }, getOwnerKey: function (a, b, d, c) { var g = new Uint8Array(a.length + 56); g.set(a, 0); g.set(b, a.length); g.set(d, a.length + b.length); a = P(g, 0, g.length); return (new F(a)).decryptBlock(c, !1, new Uint8Array(16)) }, getUserKey: function (a, b, d) { var c = new Uint8Array(a.length + 8); c.set(a, 0); c.set(b, a.length); a = P(c, 0, c.length); return (new F(a)).decryptBlock(d, !1, new Uint8Array(16)) } }; return b }(), A = function () { function a(b, d) { var c = new Uint8Array(b.length + d.length); c.set(b, 0); c.set(d, b.length); return c } function b(d, c, f) { c = P(c, 0, c.length).subarray(0, 32); for (var g = [0], n = 0; 64 > n || g[g.length - 1] > n - 32;) { for (var g = d.length + c.length + f.length, e = new Uint8Array(64 * g), k = a(d, c), k = a(k, f), q = 0, l = 0; 64 > q; q++, l += g) e.set(k, l); g = (new C(c.subarray(0, 16))).encrypt(e, c.subarray(16, 32)); for (k = e = 0; 16 > k; k++) e *= 1, e %= 3, e += (g[k] >>> 0) % 3, e %= 3; 0 === e ? c = P(g, 0, g.length) : 1 === e ? c = h(g, 0, g.length) : 2 === e && (c = H(g, 0, g.length)); n++ } return c.subarray(0, 32) } function c() { } function g(a, b) { if (a.length !== b.length) return !1; for (var d = 0; d < a.length; d++) if (a[d] !== b[d]) return !1; return !0 } c.prototype = { hash: function (a, c, f) { return b(a, c, f) }, checkOwnerPassword: function (a, c, f, h) { var m = new Uint8Array(a.length + 56); m.set(a, 0); m.set(c, a.length); m.set(f, a.length + c.length); a = b(a, m, f); return g(a, h) }, checkUserPassword: function (a, c, f) { var h = new Uint8Array(a.length + 8); h.set(a, 0); h.set(c, a.length); a = b(a, h, []); return g(a, f) }, getOwnerKey: function (a, c, f, g) { var h = new Uint8Array(a.length + 56); h.set(a, 0); h.set(c, a.length); h.set(f, a.length + c.length); a = b(a, h, f); return (new F(a)).decryptBlock(g, !1, new Uint8Array(16)) }, getUserKey: function (a, c, f) { var g = new Uint8Array(a.length + 8); g.set(a, 0); g.set(c, a.length); a = b(a, g, []); return (new F(a)).decryptBlock(f, !1, new Uint8Array(16)) } }; return c }(), g = function () { function a(b, c) { this.stringCipherConstructor = b; this.streamCipherConstructor = c } a.prototype = { createStream: function (a, b) { var c = new this.streamCipherConstructor; return new K(a, b, function (a, b) { return c.decryptBlock(a, b) }) }, decryptString: function (a) { var b = new this.stringCipherConstructor; a = I(a); a = b.decryptBlock(a, !0); return L(a) } }; return a }(); l = function () { function h(a, b, c, d, f, g, m, n) { var e = new Uint8Array(40 + c.length + a.length), p = 0, k; if (b) for (k = Math.min(32, b.length) ; p < k; ++p) e[p] = b[p]; for (b = 0; 32 > p;) e[p++] = l[b++]; b = 0; for (k = c.length; b < k; ++b) e[p++] = c[b]; e[p++] = f & 255; e[p++] = f >> 8 & 255; e[p++] = f >> 16 & 255; e[p++] = f >>> 24 & 255; b = 0; for (k = a.length; b < k; ++b) e[p++] = a[b]; 4 <= g && !n && (e[p++] = 255, e[p++] = 255, e[p++] = 255, e[p++] = 255); k = v(e, 0, p); p = m >> 3; if (3 <= g) for (b = 0; 50 > b; ++b) k = v(k, 0, p); m = k.subarray(0, p); if (3 <= g) { for (p = 0; 32 > p; ++p) e[p] = l[p]; b = 0; for (k = a.length; b < k; ++b) e[p++] = a[b]; a = new J(m); e = a.encryptBlock(v(e, 0, p)); k = m.length; g = new Uint8Array(k); for (b = 1; 19 >= b; ++b) { for (a = 0; a < k; ++a) g[a] = m[a] ^ b; a = new J(g); e = a.encryptBlock(e) } } else a = new J(m), e = a.encryptBlock(l); b = 0; for (k = e.length; b < k; ++b) if (d[b] !== e[b]) return null; return m } function d(c, d, f) { var g = c.get("Filter"); G(g) && "Standard" === g.name || Q("unknown encryption method"); this.dict = c; g = c.get("V"); (!k(g) || 1 !== g && 2 !== g && 4 !== g && 5 !== g) && Q("unsupported encryption algorithm"); this.algorithm = g; var e = c.get("Length"); if (!e) if (3 >= g) e = 40; else { var q = c.get("CF"), F = c.get("StmF"); M(q) && G(F) && (e = (e = q.get(F.name)) && e.get("Length") || 128, 40 > e && (e <<= 3)) } (!k(e) || 40 > e || 0 !== e % 8) && Q("invalid key length"); var q = I(c.get("O")).subarray(0, 32), F = I(c.get("U")).subarray(0, 32), z = c.get("P"), y = c.get("R"), p = (4 === g || 5 === g) && !1 !== c.get("EncryptMetadata"); this.encryptMetadata = p; d = I(d); var D; if (f) { if (6 === y) try { f = X(f) } catch (C) { N("CipherTransformFactory: Unable to convert UTF8 encoded password.") } D = I(f) } var H; if (5 !== g) H = h(d, D, q, F, z, y, e, p); else { H = I(c.get("O")).subarray(32, 40); var u = I(c.get("O")).subarray(40, 48), K = I(c.get("U")).subarray(0, 48), P = I(c.get("U")).subarray(32, 40), L = I(c.get("U")).subarray(40, 48), O = I(c.get("OE")), R = I(c.get("UE")); I(c.get("Perms")); var da = D, da = da ? da.subarray(0, Math.min(127, da.length)) : [], ia; ia = 6 === y ? new A : new n; H = ia.checkUserPassword(da, P, F) ? ia.getUserKey(da, L, R) : da.length && ia.checkOwnerPassword(da, H, K, q) ? ia.getOwnerKey(da, u, K, O) : null } if (!H && !f) throw new a("No password given", b.NEED_PASSWORD); if (!H && f) { f = D; H = e; D = new Uint8Array(32); u = 0; for (K = Math.min(32, f.length) ; u < K; ++u) D[u] = f[u]; for (f = 0; 32 > u;) D[u++] = l[f++]; D = v(D, 0, u); H >>= 3; if (3 <= y) for (f = 0; 50 > f; ++f) D = v(D, 0, D.length); if (3 <= y) for (u = q, K = new Uint8Array(H), f = 19; 0 <= f; f--) { for (P = 0; P < H; ++P) K[P] = D[P] ^ f; P = new J(K); u = P.encryptBlock(u) } else P = new J(D.subarray(0, H)), u = P.encryptBlock(q); H = h(d, u, q, F, z, y, e, p) } if (!H) throw new a("Incorrect Password", b.INCORRECT_PASSWORD); this.encryptionKey = H; 4 <= g && (this.cf = c.get("CF"), this.stmf = c.get("StmF") || r, this.strf = c.get("StrF") || r, this.eff = c.get("EFF") || this.stmf) } function f(a, b, c, d) { var f = new Uint8Array(c.length + 9), g, h; g = 0; for (h = c.length; g < h; ++g) f[g] = c[g]; f[g++] = a & 255; f[g++] = a >> 8 & 255; f[g++] = a >> 16 & 255; f[g++] = b & 255; f[g++] = b >> 8 & 255; d && (f[g++] = 115, f[g++] = 65, f[g++] = 108, f[g++] = 84); return v(f, 0, g).subarray(0, Math.min(c.length + 5, 16)) } function e(a, b, d, g, h) { a = a.get(b.name); var m; null !== a && void 0 !== a && (m = a.get("CFM")); if (!m || "None" === m.name) return function () { return new c }; if ("V2" === m.name) return function () { return new J(f(d, g, h, !1)) }; if ("AESV2" === m.name) return function () { return new C(f(d, g, h, !0)) }; if ("AESV3" === m.name) return function () { return new F(h) }; Q("Unknown crypto method") } var l = new Uint8Array([40, 191, 78, 94, 78, 117, 138, 65, 100, 0, 78, 86, 255, 250, 1, 8, 46, 46, 0, 182, 208, 104, 62, 128, 47, 12, 169, 254, 100, 83, 105, 122]), r = u.get("Identity"); d.prototype = { createCipherTransform: function (a, b) { if (4 === this.algorithm || 5 === this.algorithm) return new g(e(this.cf, this.stmf, a, b, this.encryptionKey), e(this.cf, this.strf, a, b, this.encryptionKey)); var c = f(a, b, this.encryptionKey, !1), d = function () { return new J(c) }; return new g(d, d) } }; return d }(); e.AES128Cipher = C; e.AES256Cipher = F; e.ARCFourCipher = J; e.CipherTransformFactory = l; e.PDF17 = n; e.PDF20 = A; e.calculateMD5 = v; e.calculateSHA256 = P; e.calculateSHA384 = h; e.calculateSHA512 = H }); (function (e, l) { l(e.pdfjsCoreFontRenderer = {}, e.pdfjsSharedUtil, e.pdfjsCoreStream, e.pdfjsCoreGlyphList, e.pdfjsCoreEncodings, e.pdfjsCoreCFFParser) })(this, function (e, l, R, O, a, b) { var L = l.Util, Q = l.bytesToString, k = l.error, I = R.Stream, X = O.getGlyphsUnicode, N = a.StandardEncoding, u = b.CFFParser; l = function () { function a(b, h) { return b[h] << 24 | b[h + 1] << 16 | b[h + 2] << 8 | b[h + 3] } function b(a, h) { return a[h] << 8 | a[h + 1] } function e(a, b, h) { var n; h ? (h = 4, n = function (a, b) { return a[b] << 24 | a[b + 1] << 16 | a[b + 2] << 8 | a[b + 3] }) : (h = 2, n = function (a, b) { return a[b] << 9 | a[b + 1] << 1 }); for (var k = [], g = n(b, 0), m = h; m < b.length; m += h) { var d = n(b, m); k.push(a.subarray(g, d)); g = d } return k } function l(a, b) { for (var h = b.charCodeAt(0), n = 0, e = 0, g = a.length - 1; e < g;) { var m = e + g + 1 >> 1; h < a[m].start ? g = m - 1 : e = m } a[e].start <= h && h <= a[e].end && (n = a[e].idDelta + (a[e].ids ? a[e].ids[h - a[e].start] : h) & 65535); return { charCode: h, glyphId: n } } function v(a, b, h) { var n = 0, e = (a[n] << 24 | a[n + 1] << 16) >> 16, g, m = 0, d = 0, n = n + 10; if (0 > e) { do { g = a[n] << 8 | a[n + 1]; e = a[n + 2] << 8 | a[n + 3]; n += 4; g & 1 ? (m = (a[n] << 24 | a[n + 1] << 16) >> 16, d = (a[n + 2] << 24 | a[n + 3] << 16) >> 16, n += 4) : (m = a[n++], d = a[n++]); g & 2 || (d = m = 0); var f = 1, k = 1, l = 0, r = 0; g & 8 ? (f = k = (a[n] << 24 | a[n + 1] << 16) / 1073741824, n += 2) : g & 64 ? (f = (a[n] << 24 | a[n + 1] << 16) / 1073741824, k = (a[n + 2] << 24 | a[n + 3] << 16) / 1073741824, n += 4) : g & 128 && (f = (a[n] << 24 | a[n + 1] << 16) / 1073741824, l = (a[n + 2] << 24 | a[n + 3] << 16) / 1073741824, r = (a[n + 4] << 24 | a[n + 5] << 16) / 1073741824, k = (a[n + 6] << 24 | a[n + 7] << 16) / 1073741824, n += 8); if (e = h.glyphs[e]) b.push({ cmd: "save" }), b.push({ cmd: "transform", args: [f, l, r, k, m, d] }), v(e, b, h), b.push({ cmd: "restore" }) } while (g & 32) } else { h = []; for (g = 0; g < e; g++) h.push(a[n] << 8 | a[n + 1]), n += 2; n += 2 + (a[n] << 8 | a[n + 1]); k = h[h.length - 1] + 1; for (f = []; f.length < k;) for (g = a[n++], l = 1, g & 8 && (l += a[n++]) ; 0 < l--;) f.push({ flags: g }); for (g = 0; g < k; g++) { switch (f[g].flags & 18) { case 0: m += (a[n] << 24 | a[n + 1] << 16) >> 16; n += 2; break; case 2: m -= a[n++]; break; case 18: m += a[n++] } f[g].x = m } for (g = 0; g < k; g++) { switch (f[g].flags & 36) { case 0: d += (a[n] << 24 | a[n + 1] << 16) >> 16; n += 2; break; case 4: d -= a[n++]; break; case 36: d += a[n++] } f[g].y = d } for (n = g = 0; n < e; n++) { a = h[n]; m = f.slice(g, a + 1); m[0].flags & 1 ? m.push(m[0]) : m[m.length - 1].flags & 1 ? m.unshift(m[m.length - 1]) : (g = { flags: 1, x: (m[0].x + m[m.length - 1].x) / 2, y: (m[0].y + m[m.length - 1].y) / 2 }, m.unshift(g), m.push(g)); b.push({ cmd: "moveTo", args: [m[0].x, m[0].y] }); g = 1; for (d = m.length; g < d; g++) m[g].flags & 1 ? b.push({ cmd: "lineTo", args: [m[g].x, m[g].y] }) : m[g + 1].flags & 1 ? (b.push({ cmd: "quadraticCurveTo", args: [m[g].x, m[g].y, m[g + 1].x, m[g + 1].y] }), g++) : b.push({ cmd: "quadraticCurveTo", args: [m[g].x, m[g].y, (m[g].x + m[g + 1].x) / 2, (m[g].y + m[g + 1].y) / 2] }); g = a + 1 } } } function r(a, b, h) { function n(a, d) { b.push({ cmd: "moveTo", args: [a, d] }) } function e(a, d) { b.push({ cmd: "lineTo", args: [a, d] }) } function g(a, d, f, c, g, h) { b.push({ cmd: "bezierCurveTo", args: [a, d, f, c, g, h] }) } function m(a) { for (var c = 0; c < a.length;) { var v = !1, B = a[c++], E, t, x; switch (B) { case 1: w += d.length >> 1; v = !0; break; case 3: w += d.length >> 1; v = !0; break; case 4: q += d.pop(); n(f, q); v = !0; break; case 5: for (; 0 < d.length;) f += d.shift(), q += d.shift(), e(f, q); break; case 6: for (; 0 < d.length;) { f += d.shift(); e(f, q); if (0 === d.length) break; q += d.shift(); e(f, q) } break; case 7: for (; 0 < d.length;) { q += d.shift(); e(f, q); if (0 === d.length) break; f += d.shift(); e(f, q) } break; case 8: for (; 0 < d.length;) B = f + d.shift(), t = q + d.shift(), E = B + d.shift(), x = t + d.shift(), f = E + d.shift(), q = x + d.shift(), g(B, t, E, x, f, q); break; case 10: B = d.pop() + h.subrsBias; (B = h.subrs[B]) && m(B); break; case 11: return; case 12: B = a[c++]; switch (B) { case 34: B = f + d.shift(); E = B + d.shift(); x = q + d.shift(); f = E + d.shift(); g(B, q, E, x, f, x); B = f + d.shift(); E = B + d.shift(); f = E + d.shift(); g(B, x, E, q, f, q); break; case 35: B = f + d.shift(); t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + d.shift(); g(B, t, E, x, f, q); B = f + d.shift(); t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + d.shift(); g(B, t, E, x, f, q); d.pop(); break; case 36: B = f + d.shift(); x = q + d.shift(); E = B + d.shift(); t = x + d.shift(); f = E + d.shift(); g(B, x, E, t, f, t); B = f + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); g(B, t, E, x, f, q); break; case 37: var H = f, z = q, B = f + d.shift(); t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + d.shift(); g(B, t, E, x, f, q); B = f + d.shift(); t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E; q = x; Math.abs(f - H) > Math.abs(q - z) ? f += d.shift() : q += d.shift(); g(B, t, E, x, f, q); break; default: k("unknown operator: 12 " + B) } break; case 14: 4 <= d.length && (c = d.pop(), a = d.pop(), q = d.pop(), f = d.pop(), b.push({ cmd: "save" }), b.push({ cmd: "translate", args: [f, q] }), c = l(h.cmap, String.fromCharCode(h.glyphNameMap[N[c]])), r(h.glyphs[c.glyphId], b, h), b.push({ cmd: "restore" }), c = l(h.cmap, String.fromCharCode(h.glyphNameMap[N[a]])), r(h.glyphs[c.glyphId], b, h)); return; case 18: w += d.length >> 1; v = !0; break; case 19: w += d.length >> 1; c += w + 7 >> 3; v = !0; break; case 20: w += d.length >> 1; c += w + 7 >> 3; v = !0; break; case 21: q += d.pop(); f += d.pop(); n(f, q); v = !0; break; case 22: f += d.pop(); n(f, q); v = !0; break; case 23: w += d.length >> 1; v = !0; break; case 24: for (; 2 < d.length;) B = f + d.shift(), t = q + d.shift(), E = B + d.shift(), x = t + d.shift(), f = E + d.shift(), q = x + d.shift(), g(B, t, E, x, f, q); f += d.shift(); q += d.shift(); e(f, q); break; case 25: for (; 6 < d.length;) f += d.shift(), q += d.shift(), e(f, q); B = f + d.shift(); t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + d.shift(); g(B, t, E, x, f, q); break; case 26: for (d.length % 2 && (f += d.shift()) ; 0 < d.length;) B = f, t = q + d.shift(), E = B + d.shift(), x = t + d.shift(), f = E, q = x + d.shift(), g(B, t, E, x, f, q); break; case 27: for (d.length % 2 && (q += d.shift()) ; 0 < d.length;) B = f + d.shift(), t = q, E = B + d.shift(), x = t + d.shift(), f = E + d.shift(), q = x, g(B, t, E, x, f, q); break; case 28: d.push((a[c] << 24 | a[c + 1] << 16) >> 16); c += 2; break; case 29: B = d.pop() + h.gsubrsBias; (B = h.gsubrs[B]) && m(B); break; case 30: for (; 0 < d.length;) { B = f; t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + (1 === d.length ? d.shift() : 0); g(B, t, E, x, f, q); if (0 === d.length) break; B = f + d.shift(); t = q; E = B + d.shift(); x = t + d.shift(); q = x + d.shift(); f = E + (1 === d.length ? d.shift() : 0); g(B, t, E, x, f, q) } break; case 31: for (; 0 < d.length;) { B = f + d.shift(); t = q; E = B + d.shift(); x = t + d.shift(); q = x + d.shift(); f = E + (1 === d.length ? d.shift() : 0); g(B, t, E, x, f, q); if (0 === d.length) break; B = f; t = q + d.shift(); E = B + d.shift(); x = t + d.shift(); f = E + d.shift(); q = x + (1 === d.length ? d.shift() : 0); g(B, t, E, x, f, q) } break; default: 32 > B && k("unknown operator: " + B), 247 > B ? d.push(B - 139) : 251 > B ? d.push(256 * (B - 247) + a[c++] + 108) : 255 > B ? d.push(256 * -(B - 251) - a[c++] - 108) : (d.push((a[c] << 24 | a[c + 1] << 16 | a[c + 2] << 8 | a[c + 3]) / 65536), c += 4) } v && (d.length = 0) } } var d = [], f = 0, q = 0, w = 0; m(a) } function P(a) { this.compiledGlyphs = Object.create(null); this.compiledCharCodeToGlyphId = Object.create(null); this.fontMatrix = a } function H(a, b, h) { h = h || [4.88E-4, 0, 0, 4.88E-4, 0, 0]; P.call(this, h); this.glyphs = a; this.cmap = b } function h(a, b, h, n) { h = h || [.001, 0, 0, .001, 0, 0]; P.call(this, h); this.glyphs = a.glyphs; this.gsubrs = a.gsubrs || []; this.subrs = a.subrs || []; this.cmap = b; this.glyphNameMap = n || X(); this.gsubrsBias = 1240 > this.gsubrs.length ? 107 : 33900 > this.gsubrs.length ? 1131 : 32768; this.subrsBias = 1240 > this.subrs.length ? 107 : 33900 > this.subrs.length ? 1131 : 32768 } P.prototype = { getPathJs: function (a) { a = l(this.cmap, a); var b = this.compiledGlyphs[a.glyphId]; b || (b = this.compileGlyph(this.glyphs[a.glyphId]), this.compiledGlyphs[a.glyphId] = b); void 0 === this.compiledCharCodeToGlyphId[a.charCode] && (this.compiledCharCodeToGlyphId[a.charCode] = a.glyphId); return b }, compileGlyph: function (a) { if (!a || 0 === a.length || 14 === a[0]) return ""; var b = []; b.push({ cmd: "save" }); b.push({ cmd: "transform", args: this.fontMatrix.slice() }); b.push({ cmd: "scale", args: ["size", "-size"] }); this.compileGlyphImpl(a, b); b.push({ cmd: "restore" }); return b }, compileGlyphImpl: function () { k("Children classes should implement this.") }, hasBuiltPath: function (a) { a = l(this.cmap, a); return void 0 !== this.compiledGlyphs[a.glyphId] && void 0 !== this.compiledCharCodeToGlyphId[a.charCode] } }; L.inherit(H, P, { compileGlyphImpl: function (a, b) { v(a, b, this) } }); L.inherit(h, P, { compileGlyphImpl: function (a, b) { r(a, b, this) } }); return { create: function (c, l) { for (var v = new Uint8Array(c.data), n, A, g, m, d, f, q = b(v, 4), w = 0, r = 12; w < q; w++, r += 16) { var J = Q(v.subarray(r, r + 4)), T = a(v, r + 8), B = a(v, r + 12); switch (J) { case "cmap": n = v; var E = T, t = 1 === b(n, E + 2) ? a(n, E + 8) : a(n, E + 16), x = b(n, E + t), J = B = T = void 0; if (4 === x) { b(n, E + t + 2); x = b(n, E + t + 6) >> 1; B = E + t + 14; T = []; for (J = 0; J < x; J++, B += 2) T[J] = { end: b(n, B) }; B += 2; for (J = 0; J < x; J++, B += 2) T[J].start = b(n, B); for (J = 0; J < x; J++, B += 2) T[J].idDelta = b(n, B); for (J = 0; J < x; J++, B += 2) if (E = b(n, B), 0 !== E) { T[J].ids = []; for (var t = 0, S = T[J].end - T[J].start + 1; t < S; t++) T[J].ids[t] = b(n, B + E), E += 2 } n = T } else if (12 === x) { a(n, E + t + 4); x = a(n, E + t + 12); B = E + t + 16; T = []; for (J = 0; J < x; J++) T.push({ start: a(n, B), end: a(n, B + 4), idDelta: a(n, B + 8) - a(n, B) }), B += 12; n = T } else k("not supported cmap: " + x), n = void 0; break; case "glyf": A = v.subarray(T, T + B); break; case "loca": g = v.subarray(T, T + B); break; case "head": f = b(v, T + 18); d = b(v, T + 50); break; case "CFF ": m = l, m = (new u(new I(v, T, T + B - T), {}, m)).parse(), m = { glyphs: m.charStrings.objects, subrs: m.topDict.privateDict && m.topDict.privateDict.subrsIndex && m.topDict.privateDict.subrsIndex.objects, gsubrs: m.globalSubrIndex && m.globalSubrIndex.objects } } } return A ? (v = f ? [1 / f, 0, 0, 1 / f, 0, 0] : c.fontMatrix, new H(e(A, g, d), n, v)) : new h(m, n, c.fontMatrix, c.glyphNameMap) } } }(); e.FontRendererFactory = l }); (function (e, l) { l(e.pdfjsCoreParser = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream) })(this, function (e, l, R, O) { function a(a) { return a === U } var b = l.MissingDataException, L = l.StreamType, Q = l.assert, k = l.error, I = l.info, X = l.isArray, N = l.isInt, u = l.isNum, G = l.isString, M = l.warn, K = R.Cmd, J = R.Dict, v = R.Name, r = R.Ref, P = R.isCmd, H = R.isDict, h = R.isName, c = O.Ascii85Stream, C = O.AsciiHexStream, F = O.CCITTFaxStream, n = O.FlateStream, A = O.Jbig2Stream, g = O.JpegStream, m = O.JpxStream, d = O.LZWStream, f = O.NullStream, q = O.PredictorStream, w = O.RunLengthStream, U = {}, V = function () { function e(a, b, d) { this.lexer = a; this.allowStreams = b; this.xref = d; this.imageCache = Object.create(null); this.refill() } e.prototype = { refill: function () { this.buf1 = this.lexer.getObj(); this.buf2 = this.lexer.getObj() }, shift: function () { P(this.buf2, "ID") ? (this.buf1 = this.buf2, this.buf2 = null) : (this.buf1 = this.buf2, this.buf2 = this.lexer.getObj()) }, tryShift: function () { try { return this.shift(), !0 } catch (a) { if (a instanceof b) throw a; return !1 } }, getObj: function (b) { var d = this.buf1; this.shift(); if (d instanceof K) switch (d.cmd) { case "BI": return this.makeInlineImage(b); case "[": for (d = []; !P(this.buf1, "]") && !a(this.buf1) ;) d.push(this.getObj(b)); a(this.buf1) && k("End of file inside array"); this.shift(); return d; case "<<": for (d = new J(this.xref) ; !P(this.buf1, ">>") && !a(this.buf1) ;) if (h(this.buf1)) { var f = this.buf1.name; this.shift(); if (a(this.buf1)) break; d.set(f, this.getObj(b)) } else I("Malformed dictionary: key must be a name object"), this.shift(); a(this.buf1) && k("End of file inside dictionary"); if (P(this.buf2, "stream")) return this.allowStreams ? this.makeStream(d, b) : d; this.shift(); return d; default: return d } if (N(d)) return N(this.buf1) && P(this.buf2, "R") ? (b = new r(d, this.buf1), this.shift(), this.shift(), b) : d; G(d) && b && (d = b.decryptString(d)); return d }, findDefaultInlineStreamEnd: function (a) { for (var b = a.pos, d = 0, f, c, g; -1 !== (f = a.getByte()) ;) if (0 === d) d = 69 === f ? 1 : 0; else if (1 === d) d = 73 === f ? 2 : 0; else if (Q(2 === d), 32 === f || 10 === f || 13 === f) { g = a.peekBytes(5); for (c = 0; 5 > c; c++) if (f = g[c], 10 !== f && 13 !== f && (32 > f || 127 < f)) { d = 0; break } if (2 === d) break } else d = 0; return a.pos - 4 - b }, findDCTDecodeInlineStreamEnd: function (a) { for (var b = a.pos, d = !1, f, c; -1 !== (f = a.getByte()) ;) if (255 === f) { switch (a.getByte()) { case 255: a.skip(-1); break; case 217: d = !0; break; case 192: case 193: case 194: case 195: case 197: case 198: case 199: case 201: case 202: case 203: case 205: case 206: case 207: case 196: case 204: case 218: case 219: case 220: case 221: case 222: case 223: case 224: case 225: case 226: case 227: case 228: case 229: case 230: case 231: case 232: case 233: case 234: case 235: case 236: case 237: case 238: case 239: case 254: c = a.getUint16(), 2 < c ? a.skip(c - 2) : a.skip(-2) } if (d) break } b = a.pos - b; if (-1 === f) return M("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."), a.skip(-b), this.findDefaultInlineStreamEnd(a); this.inlineStreamSkipEI(a); return b }, findASCII85DecodeInlineStreamEnd: function (a) { for (var b = a.pos, d; -1 !== (d = a.getByte()) ;) if (126 === d && 62 === a.peekByte()) { a.skip(); break } b = a.pos - b; if (-1 === d) return M("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."), a.skip(-b), this.findDefaultInlineStreamEnd(a); this.inlineStreamSkipEI(a); return b }, findASCIIHexDecodeInlineStreamEnd: function (a) { for (var b = a.pos, d; -1 !== (d = a.getByte()) && 62 !== d;); b = a.pos - b; if (-1 === d) return M("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."), a.skip(-b), this.findDefaultInlineStreamEnd(a); this.inlineStreamSkipEI(a); return b }, inlineStreamSkipEI: function (a) { for (var b = 0, d; -1 !== (d = a.getByte()) ;) if (0 === b) b = 69 === d ? 1 : 0; else if (1 === b) b = 73 === d ? 2 : 0; else if (2 === b) break }, makeInlineImage: function (b) { for (var d = this.lexer.stream, f = new J(this.xref) ; !P(this.buf1, "ID") && !a(this.buf1) ;) { h(this.buf1) || k("Dictionary key must be a name object"); var c = this.buf1.name; this.shift(); if (a(this.buf1)) break; f.set(c, this.getObj(b)) } var c = f.get("Filter", "F"), g; h(c) ? g = c.name : X(c) && h(c[0]) && (g = c[0].name); var c = d.pos, m; g = "DCTDecode" === g || "DCT" === g ? this.findDCTDecodeInlineStreamEnd(d) : "ASCII85Decide" === g || "A85" === g ? this.findASCII85DecodeInlineStreamEnd(d) : "ASCIIHexDecode" === g || "AHx" === g ? this.findASCIIHexDecodeInlineStreamEnd(d) : this.findDefaultInlineStreamEnd(d); d = d.makeSubStream(c, g, f); if (1E3 > g) { var n = d.getBytes(); d.reset(); var e = 1, l = 0; m = 0; for (c = n.length; m < c; ++m) e += n[m] & 255, l += e; m = l % 65521 << 16 | e % 65521; if (this.imageCache.adler32 === m) return this.buf2 = K.get("EI"), this.shift(), this.imageCache[m].reset(), this.imageCache[m] } b && (d = b.createStream(d, g)); d = this.filter(d, f, g); d.dict = f; void 0 !== m && (d.cacheKey = "inline_" + g + "_" + m, this.imageCache[m] = d); this.buf2 = K.get("EI"); this.shift(); return d }, makeStream: function (a, b) { var d = this.lexer, f = d.stream; d.skipToNextLine(); var c = f.pos - 1, g = a.get("Length"); N(g) || (I("Bad " + g + " attribute in stream"), g = 0); f.pos = c + g; d.nextChar(); if (!this.tryShift() || !P(this.buf2, "endstream")) { f.pos = c; for (var g = [101, 110, 100, 115, 116, 114, 101, 97, 109], h = 0, m = !1, n, e; f.pos < f.end;) { var l = f.peekBytes(2048), q = l.length - 9; if (0 >= q) break; m = !1; for (n = 0; n < q;) { for (e = 0; 9 > e && l[n + e] === g[e];) e++; if (9 <= e) { m = !0; break } n++ } if (m) { h += n; f.pos += n; break } h += q; f.pos += q } m || k("Missing endstream"); g = h; d.nextChar(); this.shift() } this.shift(); this.shift(); f = f.makeSubStream(c, g, a); b && (f = b.createStream(f, g)); f = this.filter(f, a, g); f.dict = a; return f }, filter: function (a, b, d) { var f = b.get("Filter", "F"); b = b.get("DecodeParms", "DP"); if (h(f)) return this.makeFilter(a, f.name, d, b); if (X(f)) for (var c = f, g = b, m = 0, n = c.length; m < n; ++m) f = c[m], h(f) || k("Bad filter name: " + f), b = null, X(g) && m in g && (b = g[m]), a = this.makeFilter(a, f.name, d, b), d = null; return a }, makeFilter: function (a, h, e, k) { if (0 === a.dict.get("Length") && !e) return M('Empty "' + h + '" stream.'), new f(a); try { k && this.xref && (k = this.xref.fetchIfRef(k)); var l = this.xref.stats.streamTypes; if ("FlateDecode" === h || "Fl" === h) return l[L.FLATE] = !0, k ? new q(new n(a, e), e, k) : new n(a, e); if ("LZWDecode" === h || "LZW" === h) return l[L.LZW] = !0, h = 1, k ? (k.has("EarlyChange") && (h = k.get("EarlyChange")), new q(new d(a, e, h), e, k)) : new d(a, e, h); if ("DCTDecode" === h || "DCT" === h) return l[L.DCT] = !0, new g(a, e, a.dict, this.xref); if ("JPXDecode" === h || "JPX" === h) return l[L.JPX] = !0, new m(a, e, a.dict); if ("ASCII85Decode" === h || "A85" === h) return l[L.A85] = !0, new c(a, e); if ("ASCIIHexDecode" === h || "AHx" === h) return l[L.AHX] = !0, new C(a, e); if ("CCITTFaxDecode" === h || "CCF" === h) return l[L.CCF] = !0, new F(a, e, k); if ("RunLengthDecode" === h || "RL" === h) return l[L.RL] = !0, new w(a, e); if ("JBIG2Decode" === h) return l[L.JBIG] = !0, new A(a, e, a.dict); M('filter "' + h + '" not supported yet'); return a } catch (y) { if (y instanceof b) throw y; M('Invalid stream: "' + y + '"'); return new f(a) } } }; return e }(), T = function () { function a(b, d) { this.stream = b; this.nextChar(); this.strBuf = []; this.knownCommands = d } function b(a) { return 48 <= a && 57 >= a ? a & 15 : 65 <= a && 70 >= a || 97 <= a && 102 >= a ? (a & 15) + 9 : -1 } a.isSpace = function (a) { return 32 === a || 9 === a || 13 === a || 10 === a }; var d = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; a.prototype = { nextChar: function () { return this.currentChar = this.stream.getByte() }, peekChar: function () { return this.stream.peekByte() }, getNumber: function () { var a = this.currentChar, b = !1, d = 0, f = 1; 45 === a ? (f = -1, a = this.nextChar(), 45 === a && (a = this.nextChar())) : 43 === a && (a = this.nextChar()); 46 === a && (d = 10, a = this.nextChar()); if (48 > a || 57 < a) return k("Invalid number: " + String.fromCharCode(a)), 0; for (var c = a - 48, g = 0, h = 1; 0 <= (a = this.nextChar()) ;) if (48 <= a && 57 >= a) a -= 48, b ? g = 10 * g + a : (0 !== d && (d *= 10), c = 10 * c + a); else if (46 === a) if (0 === d) d = 1; else break; else if (45 === a) M("Badly formated number"); else if (69 === a || 101 === a) { a = this.peekChar(); if (43 === a || 45 === a) h = 45 === a ? -1 : 1, this.nextChar(); else if (48 > a || 57 < a) break; b = !0 } else break; 0 !== d && (c /= d); b && (c *= Math.pow(10, h * g)); return f * c }, getString: function () { var a = 1, b = !1, d = this.strBuf; d.length = 0; for (var f = this.nextChar() ; ;) { var c = !1; switch (f | 0) { case -1: M("Unterminated string"); b = !0; break; case 40: ++a; d.push("("); break; case 41: 0 === --a ? (this.nextChar(), b = !0) : d.push(")"); break; case 92: f = this.nextChar(); switch (f) { case -1: M("Unterminated string"); b = !0; break; case 110: d.push("\n"); break; case 114: d.push("\r"); break; case 116: d.push("\t"); break; case 98: d.push("\b"); break; case 102: d.push("\f"); break; case 92: case 40: case 41: d.push(String.fromCharCode(f)); break; case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: var g = f & 15, f = this.nextChar(), c = !0; 48 <= f && 55 >= f && (g = (g << 3) + (f & 15), f = this.nextChar(), 48 <= f && 55 >= f && (c = !1, g = (g << 3) + (f & 15))); d.push(String.fromCharCode(g)); break; case 13: 10 === this.peekChar() && this.nextChar(); break; case 10: break; default: d.push(String.fromCharCode(f)) } break; default: d.push(String.fromCharCode(f)) } if (b) break; c || (f = this.nextChar()) } return d.join(""); }, getName: function () { var a, f, c = this.strBuf; for (c.length = 0; 0 <= (a = this.nextChar()) && !d[a];) if (35 === a) { a = this.nextChar(); if (d[a]) { M("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number."); c.push("#"); break } var g = b(a); if (-1 !== g) { f = a; a = this.nextChar(); var h = b(a); if (-1 === h) { M("Lexer_getName: Illegal digit (" + String.fromCharCode(a) + ") in hexadecimal number."); c.push("#", String.fromCharCode(f)); if (d[a]) break; c.push(String.fromCharCode(a)) } else c.push(String.fromCharCode(g << 4 | h)) } else c.push("#", String.fromCharCode(a)) } else c.push(String.fromCharCode(a)); 127 < c.length && M("name token is longer than allowed by the spec: " + c.length); return v.get(c.join("")) }, getHexString: function () { var a = this.strBuf; a.length = 0; for (var f = this.currentChar, c = !0, g, h; ;) if (0 > f) { M("Unterminated hex string"); break } else if (62 === f) { this.nextChar(); break } else { if (1 !== d[f]) { if (c) { if (g = b(f), -1 === g) { M('Ignoring invalid character "' + f + '" in hex string'); f = this.nextChar(); continue } } else { h = b(f); if (-1 === h) { M('Ignoring invalid character "' + f + '" in hex string'); f = this.nextChar(); continue } a.push(String.fromCharCode(g << 4 | h)) } c = !c } f = this.nextChar() } return a.join("") }, getObj: function () { for (var a = !1, b = this.currentChar; ;) { if (0 > b) return U; if (a) { if (10 === b || 13 === b) a = !1 } else if (37 === b) a = !0; else if (1 !== d[b]) break; b = this.nextChar() } switch (b | 0) { case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 43: case 45: case 46: return this.getNumber(); case 40: return this.getString(); case 47: return this.getName(); case 91: return this.nextChar(), K.get("["); case 93: return this.nextChar(), K.get("]"); case 60: return b = this.nextChar(), 60 === b ? (this.nextChar(), K.get("<<")) : this.getHexString(); case 62: return b = this.nextChar(), 62 === b ? (this.nextChar(), K.get(">>")) : K.get(">"); case 123: return this.nextChar(), K.get("{"); case 125: return this.nextChar(), K.get("}"); case 41: k("Illegal character: " + b) } for (var a = String.fromCharCode(b), f = this.knownCommands, c = f && void 0 !== f[a]; 0 <= (b = this.nextChar()) && !d[b];) { var g = a + String.fromCharCode(b); if (c && void 0 === f[g]) break; 128 === a.length && k("Command token too long: " + a.length); a = g; c = f && void 0 !== f[a] } return "true" === a ? !0 : "false" === a ? !1 : "null" === a ? null : K.get(a) }, skipToNextLine: function () { for (var a = this.currentChar; 0 <= a;) { if (13 === a) { a = this.nextChar(); 10 === a && this.nextChar(); break } else if (10 === a) { this.nextChar(); break } a = this.nextChar() } } }; return a }(); e.EOF = U; e.Lexer = T; e.Linearization = { create: function (a) { function b(a, d) { var f = h.get(a); if (N(f) && (d ? 0 <= f : 0 < f)) return f; throw Error('The "' + a + '" parameter in the linearization dictionary is invalid.'); } var d = new V(new T(a), !1, null), f = d.getObj(), c = d.getObj(), g = d.getObj(), h = d.getObj(), m; if (!(N(f) && N(c) && P(g, "obj") && H(h) && u(m = h.get("Linearized")) && 0 < m)) return null; if ((d = b("L")) !== a.length) throw Error('The "L" parameter in the linearization dictionary does not equal the stream length.'); return { length: d, hints: function () { var a = h.get("H"), b, d; if (X(a) && (2 === (b = a.length) || 4 === b)) { for (var f = 0; f < b; f++) if (!(N(d = a[f]) && 0 < d)) throw Error("Hint (" + f + ") in the linearization dictionary is invalid."); return a } throw Error("Hint array in the linearization dictionary is invalid."); }(), objectNumberFirst: b("O"), endFirst: b("E"), numPages: b("N"), mainXRefEntriesOffset: b("T"), pageFirst: h.has("P") ? b("P", !0) : 0 } } }; e.Parser = V; e.isEOF = a }); (function (e, l) { l(e.pdfjsCoreCMap = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream, e.pdfjsCoreParser) })(this, function (e, l, R, O, a) { var b = l.Util, L = l.assert, Q = l.error, k = l.isInt, I = l.isString, X = R.isName, N = R.isCmd, u = R.isStream, G = O.StringStream, M = a.Lexer, K = a.isEOF, J = "Adobe-GB1-UCS2 Adobe-CNS1-UCS2 Adobe-Japan1-UCS2 Adobe-Korea1-UCS2 78-EUC-H 78-EUC-V 78-H 78-RKSJ-H 78-RKSJ-V 78-V 78ms-RKSJ-H 78ms-RKSJ-V 83pv-RKSJ-H 90ms-RKSJ-H 90ms-RKSJ-V 90msp-RKSJ-H 90msp-RKSJ-V 90pv-RKSJ-H 90pv-RKSJ-V Add-H Add-RKSJ-H Add-RKSJ-V Add-V Adobe-CNS1-0 Adobe-CNS1-1 Adobe-CNS1-2 Adobe-CNS1-3 Adobe-CNS1-4 Adobe-CNS1-5 Adobe-CNS1-6 Adobe-GB1-0 Adobe-GB1-1 Adobe-GB1-2 Adobe-GB1-3 Adobe-GB1-4 Adobe-GB1-5 Adobe-Japan1-0 Adobe-Japan1-1 Adobe-Japan1-2 Adobe-Japan1-3 Adobe-Japan1-4 Adobe-Japan1-5 Adobe-Japan1-6 Adobe-Korea1-0 Adobe-Korea1-1 Adobe-Korea1-2 B5-H B5-V B5pc-H B5pc-V CNS-EUC-H CNS-EUC-V CNS1-H CNS1-V CNS2-H CNS2-V ETHK-B5-H ETHK-B5-V ETen-B5-H ETen-B5-V ETenms-B5-H ETenms-B5-V EUC-H EUC-V Ext-H Ext-RKSJ-H Ext-RKSJ-V Ext-V GB-EUC-H GB-EUC-V GB-H GB-V GBK-EUC-H GBK-EUC-V GBK2K-H GBK2K-V GBKp-EUC-H GBKp-EUC-V GBT-EUC-H GBT-EUC-V GBT-H GBT-V GBTpc-EUC-H GBTpc-EUC-V GBpc-EUC-H GBpc-EUC-V H HKdla-B5-H HKdla-B5-V HKdlb-B5-H HKdlb-B5-V HKgccs-B5-H HKgccs-B5-V HKm314-B5-H HKm314-B5-V HKm471-B5-H HKm471-B5-V HKscs-B5-H HKscs-B5-V Hankaku Hiragana KSC-EUC-H KSC-EUC-V KSC-H KSC-Johab-H KSC-Johab-V KSC-V KSCms-UHC-H KSCms-UHC-HW-H KSCms-UHC-HW-V KSCms-UHC-V KSCpc-EUC-H KSCpc-EUC-V Katakana NWP-H NWP-V RKSJ-H RKSJ-V Roman UniCNS-UCS2-H UniCNS-UCS2-V UniCNS-UTF16-H UniCNS-UTF16-V UniCNS-UTF32-H UniCNS-UTF32-V UniCNS-UTF8-H UniCNS-UTF8-V UniGB-UCS2-H UniGB-UCS2-V UniGB-UTF16-H UniGB-UTF16-V UniGB-UTF32-H UniGB-UTF32-V UniGB-UTF8-H UniGB-UTF8-V UniJIS-UCS2-H UniJIS-UCS2-HW-H UniJIS-UCS2-HW-V UniJIS-UCS2-V UniJIS-UTF16-H UniJIS-UTF16-V UniJIS-UTF32-H UniJIS-UTF32-V UniJIS-UTF8-H UniJIS-UTF8-V UniJIS2004-UTF16-H UniJIS2004-UTF16-V UniJIS2004-UTF32-H UniJIS2004-UTF32-V UniJIS2004-UTF8-H UniJIS2004-UTF8-V UniJISPro-UCS2-HW-V UniJISPro-UCS2-V UniJISPro-UTF8-V UniJISX0213-UTF32-H UniJISX0213-UTF32-V UniJISX02132004-UTF32-H UniJISX02132004-UTF32-V UniKS-UCS2-H UniKS-UCS2-V UniKS-UTF16-H UniKS-UTF16-V UniKS-UTF32-H UniKS-UTF32-V UniKS-UTF8-H UniKS-UTF8-V V WP-Symbol".split(" "), v = function () { function a(b) { this.codespaceRanges = [[], [], [], []]; this.numCodespaceRanges = 0; this._map = []; this.name = ""; this.vertical = !1; this.useCMap = null; this.builtInCMap = b } a.prototype = { addCodespaceRange: function (a, b, e) { this.codespaceRanges[a - 1].push(b, e); this.numCodespaceRanges++ }, mapCidRange: function (a, b, e) { for (; a <= b;) this._map[a++] = e++ }, mapBfRange: function (a, b, e) { for (var k = e.length - 1; a <= b;) this._map[a++] = e, e = e.substr(0, k) + String.fromCharCode(e.charCodeAt(k) + 1) }, mapBfRangeToArray: function (a, b, e) { for (var k = 0, n = e.length; a <= b && k < n;) this._map[a] = e[k++], ++a }, mapOne: function (a, b) { this._map[a] = b }, lookup: function (a) { return this._map[a] }, contains: function (a) { return void 0 !== this._map[a] }, forEach: function (a) { var b = this._map, e = b.length, k; if (65536 >= e) for (k = 0; k < e; k++) void 0 !== b[k] && a(k, b[k]); else for (k in this._map) a(k, b[k]) }, charCodeOf: function (a) { return this._map.indexOf(a) }, getMap: function () { return this._map }, readCharCode: function (a, b, e) { for (var k = 0, n = this.codespaceRanges, l = this.codespaceRanges.length, g = 0; g < l; g++) for (var k = (k << 8 | a.charCodeAt(b + g)) >>> 0, m = n[g], d = 0, f = m.length; d < f;) { var q = m[d++], w = m[d++]; if (k >= q && k <= w) { e.charcode = k; e.length = g + 1; return } } e.charcode = 0; e.length = 1 }, get length() { return this._map.length }, get isIdentityCMap() { if ("Identity-H" !== this.name && "Identity-V" !== this.name || 65536 !== this._map.length) return !1; for (var a = 0; 65536 > a; a++) if (this._map[a] !== a) return !1; return !0 } }; return a }(), r = function () { function a(b, c) { v.call(this); this.vertical = b; this.addCodespaceRange(c, 0, 65535) } b.inherit(a, v, {}); a.prototype = { addCodespaceRange: v.prototype.addCodespaceRange, mapCidRange: function (a, b, e) { Q("should not call mapCidRange") }, mapBfRange: function (a, b, e) { Q("should not call mapBfRange") }, mapBfRangeToArray: function (a, b, e) { Q("should not call mapBfRangeToArray") }, mapOne: function (a, b) { Q("should not call mapCidOne") }, lookup: function (a) { return k(a) && 65535 >= a ? a : void 0 }, contains: function (a) { return k(a) && 65535 >= a }, forEach: function (a) { for (var b = 0; 65535 >= b; b++) a(b, b) }, charCodeOf: function (a) { return k(a) && 65535 >= a ? a : -1 }, getMap: function () { for (var a = Array(65536), b = 0; 65535 >= b; b++) a[b] = b; return a }, readCharCode: v.prototype.readCharCode, get length() { return 65536 }, get isIdentityCMap() { Q("should not access .isIdentityCMap") } }; return a }(), P = function () { function a(b) { return new Promise(function (a, d) { var f = new XMLHttpRequest; f.open("GET", b, !0); f.responseType = "arraybuffer"; f.onreadystatechange = function () { f.readyState === XMLHttpRequest.DONE && (!f.response || 200 !== f.status && 0 !== f.status ? d(Error("Unable to get binary cMap at: " + b)) : a(new Uint8Array(f.response))) }; f.send(null) }) } function b(a, c) { for (var d = 0, f = 0; f <= c; f++) d = d << 8 | a[f]; return d >>> 0 } function c(a, b) { return 1 === b ? String.fromCharCode(a[0], a[1]) : 3 === b ? String.fromCharCode(a[0], a[1], a[2], a[3]) : String.fromCharCode.apply(null, a.subarray(0, b + 1)) } function e(a, b, d) { for (var f = 0; 0 <= d; d--) f += a[d] + b[d], a[d] = f & 255, f >>= 8 } function k(a, b) { for (var d = 1, f = b; 0 <= f && 0 < d; f--) d += a[f], a[f] = d & 255, d >>= 8 } function n(a) { this.buffer = a; this.pos = 0; this.end = a.length; this.tmpBuf = new Uint8Array(19) } function l() { } n.prototype = { readByte: function () { return this.pos >= this.end ? -1 : this.buffer[this.pos++] }, readNumber: function () { var a = 0, b; do { var d = this.readByte(); 0 > d && Q("unexpected EOF in bcmap"); b = !(d & 128); a = a << 7 | d & 127 } while (!b); return a }, readSigned: function () { var a = this.readNumber(); return a & 1 ? ~(a >>> 1) : a >>> 1 }, readHex: function (a, b) { a.set(this.buffer.subarray(this.pos, this.pos + b + 1)); this.pos += b + 1 }, readHexNumber: function (a, b) { var d, f = this.tmpBuf, c = 0; do { var h = this.readByte(); 0 > h && Q("unexpected EOF in bcmap"); d = !(h & 128); f[c++] = h & 127 } while (!d); d = b; for (var e = h = 0; 0 <= d;) { for (; 8 > e && 0 < f.length;) h |= f[--c] << e, e += 7; a[d] = h & 255; d--; h >>= 8; e -= 8 } }, readHexSigned: function (a, b) { this.readHexNumber(a, b); for (var d = a[b] & 1 ? 255 : 0, f = 0, c = 0; c <= b; c++) f = (f & 1) << 8 | a[c], a[c] = f >> 1 ^ d }, readString: function () { for (var a = this.readNumber(), b = "", d = 0; d < a; d++) b += String.fromCharCode(this.readNumber()); return b } }; l.prototype = { read: function (g, m, d) { return a(g).then(function (a) { a = new n(a); var g = a.readByte(); m.vertical = !!(g & 1); for (var g = null, l = new Uint8Array(16), v = new Uint8Array(16), A = new Uint8Array(16), r = new Uint8Array(16), B = new Uint8Array(16), E, t; 0 <= (t = a.readByte()) ;) if (E = t >> 5, 7 === E) switch (t & 31) { case 0: a.readString(); break; case 1: g = a.readString() } else { var x = !!(t & 16); t &= 15; L(16 >= t + 1); var H = a.readNumber(), z; switch (E) { case 0: a.readHex(l, t); a.readHexNumber(v, t); e(v, l, t); m.addCodespaceRange(t + 1, b(l, t), b(v, t)); for (z = 1; z < H; z++) k(v, t), a.readHexNumber(l, t), e(l, v, t), a.readHexNumber(v, t), e(v, l, t), m.addCodespaceRange(t + 1, b(l, t), b(v, t)); break; case 1: a.readHex(l, t); a.readHexNumber(v, t); e(v, l, t); a.readNumber(); for (z = 1; z < H; z++) k(v, t), a.readHexNumber(l, t), e(l, v, t), a.readHexNumber(v, t), e(v, l, t), a.readNumber(); break; case 2: a.readHex(A, t); E = a.readNumber(); m.mapOne(b(A, t), E); for (z = 1; z < H; z++) k(A, t), x || (a.readHexNumber(B, t), e(A, B, t)), E = a.readSigned() + (E + 1), m.mapOne(b(A, t), E); break; case 3: a.readHex(l, t); a.readHexNumber(v, t); e(v, l, t); E = a.readNumber(); m.mapCidRange(b(l, t), b(v, t), E); for (z = 1; z < H; z++) k(v, t), x ? l.set(v) : (a.readHexNumber(l, t), e(l, v, t)), a.readHexNumber(v, t), e(v, l, t), E = a.readNumber(), m.mapCidRange(b(l, t), b(v, t), E); break; case 4: a.readHex(A, 1); a.readHex(r, t); m.mapOne(b(A, 1), c(r, t)); for (z = 1; z < H; z++) k(A, 1), x || (a.readHexNumber(B, 1), e(A, B, 1)), k(r, t), a.readHexSigned(B, t), e(r, B, t), m.mapOne(b(A, 1), c(r, t)); break; case 5: a.readHex(l, 1); a.readHexNumber(v, 1); e(v, l, 1); a.readHex(r, t); m.mapBfRange(b(l, 1), b(v, 1), c(r, t)); for (z = 1; z < H; z++) k(v, 1), x ? l.set(v) : (a.readHexNumber(l, 1), e(l, v, 1)), a.readHexNumber(v, 1), e(v, l, 1), a.readHex(r, t), m.mapBfRange(b(l, 1), b(v, 1), c(r, t)); break; default: Q("Unknown type: " + E) } } return g ? d(g) : m }) } }; return l }(); l = function () { function a(b) { for (var c = 0, d = 0; d < b.length; d++) c = c << 8 | b.charCodeAt(d); return c >>> 0 } function b(a) { I(a) || Q("Malformed CMap: expected string.") } function c(a) { k(a) || Q("Malformed CMap: expected int.") } function e(g, m, d, f) { var n, w; a: for (; ;) { var v = m.getObj(); if (K(v)) break; else if (X(v)) { if ("WMode" === v.name) { n = g; var A = m.getObj(); k(A) && (n.vertical = !!A) } else "CMapName" === v.name && (n = g, A = m.getObj(), X(A) && I(A.name) && (n.name = A.name)); n = v } else if (N(v)) switch (v.cmd) { case "endcmap": break a; case "usecmap": X(n) && (w = n.name); break; case "begincodespacerange": b: { v = g; for (A = m; ;) { var r = A.getObj(); if (K(r)) break; if (N(r, "endcodespacerange")) break b; if (!I(r)) break; var C = a(r), r = A.getObj(); if (!I(r)) break; var E = a(r); v.addCodespaceRange(r.length, C, E) } Q("Invalid codespace range.") } break; case "beginbfchar": b: for (v = g, A = m; ;) { r = A.getObj(); if (K(r)) break; if (N(r, "endbfchar")) break b; b(r); C = a(r); r = A.getObj(); b(r); v.mapOne(C, r) } break; case "begincidchar": b: for (v = g, A = m; ;) { r = A.getObj(); if (K(r)) break; if (N(r, "endcidchar")) break b; b(r); C = a(r); r = A.getObj(); c(r); v.mapOne(C, r) } break; case "beginbfrange": b: { v = g; for (A = m; ;) { E = A.getObj(); if (K(E)) break; if (N(E, "endbfrange")) break b; b(E); r = a(E); E = A.getObj(); b(E); C = a(E); E = A.getObj(); if (k(E) || I(E)) E = k(E) ? String.fromCharCode(E) : E, v.mapBfRange(r, C, E); else if (N(E, "[")) { for (var E = A.getObj(), t = []; !N(E, "]") && !K(E) ;) t.push(E), E = A.getObj(); v.mapBfRangeToArray(r, C, t) } else break } Q("Invalid bf range.") } break; case "begincidrange": b: for (v = g, A = m; ;) { r = A.getObj(); if (K(r)) break; if (N(r, "endcidrange")) break b; b(r); C = a(r); r = A.getObj(); b(r); E = a(r); r = A.getObj(); c(r); v.mapCidRange(C, E, r) } } } !f && w && (f = w); return f ? l(g, d, f) : Promise.resolve(g) } function l(a, b, d) { return A(d, b).then(function (b) { a.useCMap = b; if (0 === a.numCodespaceRanges) { b = a.useCMap.codespaceRanges; for (var d = 0; d < b.length; d++) a.codespaceRanges[d] = b[d].slice(); a.numCodespaceRanges = a.useCMap.numCodespaceRanges } a.useCMap.forEach(function (b, d) { a.contains(b) || a.mapOne(b, a.useCMap.lookup(b)) }); return a }) } function n(a, b) { var d = b.url + a + ".bcmap", f = new v(!0); return (new P).read(d, f, function (a) { return l(f, b, a) }) } function A(a, b) { if ("Identity-H" === a) return Promise.resolve(new r(!1, 2)); if ("Identity-V" === a) return Promise.resolve(new r(!0, 2)); if (-1 === J.indexOf(a)) return Promise.reject(Error("Unknown cMap name: " + a)); L(b, "built-in cMap parameters are not provided"); return b.packed ? n(a, b) : new Promise(function (d, f) { var c = b.url + a, h = new XMLHttpRequest; h.onreadystatechange = function () { if (h.readyState === XMLHttpRequest.DONE) if (200 === h.status || 0 === h.status) { var a = new v(!0), g = new M(new G(h.responseText)); e(a, g, b, null).then(function (a) { d(a) })["catch"](function (a) { f(Error({ message: "Invalid CMap data", error: a })) }) } else f(Error("Unable to get cMap at: " + c)) }; console.log(h); console.log(c); h.open("GET", 'fonts/' + c.substring(4, c.length), !0); h.send(null) }) } return { create: function (a, b, d) { if (X(a)) return A(a.name, b); if (u(a)) { var f = new v; a = new M(a); return e(f, a, b, d).then(function (a) { return a.isIdentityCMap ? A(a.name, b) : a }) } return Promise.reject(Error("Encoding required.")) } } }(); e.CMap = v; e.CMapFactory = l; e.IdentityCMap = r }); (function (e, l) { l(e.pdfjsCorePsParser = {}, e.pdfjsSharedUtil, e.pdfjsCoreParser) })(this, function (e, l, R) { var O = l.error, a = R.EOF, b = R.Lexer; l = function () { function a(b) { this.lexer = b; this.operators = []; this.prev = this.token = null } a.prototype = { nextToken: function () { this.prev = this.token; this.token = this.lexer.getToken() }, accept: function (a) { return this.token.type === a ? (this.nextToken(), !0) : !1 }, expect: function (a) { if (this.accept(a)) return !0; O("Unexpected symbol: found " + this.token.type + " expected " + a + ".") }, parse: function () { this.nextToken(); this.expect(L.LBRACE); this.parseBlock(); this.expect(L.RBRACE); return this.operators }, parseBlock: function () { for (; ;) if (this.accept(L.NUMBER)) this.operators.push(this.prev.value); else if (this.accept(L.OPERATOR)) this.operators.push(this.prev.value); else if (this.accept(L.LBRACE)) this.parseCondition(); else break }, parseCondition: function () { var a = this.operators.length; this.operators.push(null, null); this.parseBlock(); this.expect(L.RBRACE); if (this.accept(L.IF)) this.operators[a] = this.operators.length, this.operators[a + 1] = "jz"; else if (this.accept(L.LBRACE)) { var b = this.operators.length; this.operators.push(null, null); var e = this.operators.length; this.parseBlock(); this.expect(L.RBRACE); this.expect(L.IFELSE); this.operators[b] = this.operators.length; this.operators[b + 1] = "j"; this.operators[a] = e; this.operators[a + 1] = "jz" } else O("PS Function: error parsing conditional.") } }; return a }(); var L = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 }, Q = function () { function a(b, e) { this.type = b; this.value = e } var b = Object.create(null); a.getOperator = function (e) { var l = b[e]; return l ? l : b[e] = new a(L.OPERATOR, e) }; a.LBRACE = new a(L.LBRACE, "{"); a.RBRACE = new a(L.RBRACE, "}"); a.IF = new a(L.IF, "IF"); a.IFELSE = new a(L.IFELSE, "IFELSE"); return a }(); R = function () { function e(a) { this.stream = a; this.nextChar(); this.strBuf = [] } e.prototype = { nextChar: function () { return this.currentChar = this.stream.getByte() }, getToken: function () { for (var e = !1, k = this.currentChar; ;) { if (0 > k) return a; if (e) { if (10 === k || 13 === k) e = !1 } else if (37 === k) e = !0; else if (!b.isSpace(k)) break; k = this.nextChar() } switch (k | 0) { case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 43: case 45: case 46: return new Q(L.NUMBER, this.getNumber()); case 123: return this.nextChar(), Q.LBRACE; case 125: return this.nextChar(), Q.RBRACE } e = this.strBuf; e.length = 0; for (e[0] = String.fromCharCode(k) ; 0 <= (k = this.nextChar()) && (65 <= k && 90 >= k || 97 <= k && 122 >= k) ;) e.push(String.fromCharCode(k)); k = e.join(""); switch (k.toLowerCase()) { case "if": return Q.IF; case "ifelse": return Q.IFELSE; default: return Q.getOperator(k) } }, getNumber: function () { var a = this.currentChar, b = this.strBuf; b.length = 0; for (b[0] = String.fromCharCode(a) ; 0 <= (a = this.nextChar()) ;) if (48 <= a && 57 >= a || 45 === a || 46 === a) b.push(String.fromCharCode(a)); else break; a = parseFloat(b.join("")); isNaN(a) && O("Invalid floating point number: " + a); return a } }; return e }(); e.PostScriptLexer = R; e.PostScriptParser = l }); (function (e, l) { l(e.pdfjsCoreType1Parser = {}, e.pdfjsSharedUtil, e.pdfjsCoreStream, e.pdfjsCoreParser, e.pdfjsCoreEncodings) })(this, function (e, l, R, O, a) { var b = l.warn, L = R.Stream, Q = O.Lexer, k = a.getEncoding, I = function () { function a() { this.lsb = this.width = 0; this.flexing = !1; this.output = []; this.stack = [] } var e = [4], k = [5], l = [6], M = [7], K = [8], J = [12, 35], v = [14], r = [21], P = [22], H = [30], h = [31]; a.prototype = { convert: function (a, C, F) { for (var n = a.length, A = !1, g, m = 0; m < n; m++) if (g = a[m], 32 > g) { 12 === g && (g = (g << 8) + a[++m]); switch (g) { case 1: this.stack = []; break; case 3: this.stack = []; break; case 4: if (this.flexing) { if (1 > this.stack.length) { A = !0; break } g = this.stack.pop(); this.stack.push(0, g); break } A = this.executeCommand(1, e); break; case 5: A = this.executeCommand(2, k); break; case 6: A = this.executeCommand(1, l); break; case 7: A = this.executeCommand(1, M); break; case 8: A = this.executeCommand(6, K); break; case 9: this.stack = []; break; case 10: if (1 > this.stack.length) { A = !0; break } g = this.stack.pop(); A = this.convert(C[g], C, F); break; case 11: return A; case 13: if (2 > this.stack.length) { A = !0; break } A = this.stack.pop(); this.lsb = g = this.stack.pop(); this.width = A; this.stack.push(A, g); A = this.executeCommand(2, P); break; case 14: this.output.push(v[0]); break; case 21: if (this.flexing) break; A = this.executeCommand(2, r); break; case 22: if (this.flexing) { this.stack.push(0); break } A = this.executeCommand(1, P); break; case 30: A = this.executeCommand(4, H); break; case 31: A = this.executeCommand(4, h); break; case 3072: this.stack = []; break; case 3073: this.stack = []; break; case 3074: this.stack = []; break; case 3078: F ? (this.seac = this.stack.splice(-4, 4), A = this.executeCommand(0, v)) : A = this.executeCommand(4, v); break; case 3079: if (4 > this.stack.length) { A = !0; break } this.stack.pop(); var A = this.stack.pop(), d = this.stack.pop(); this.lsb = g = this.stack.pop(); this.width = A; this.stack.push(A, g, d); A = this.executeCommand(3, r); break; case 3084: if (2 > this.stack.length) { A = !0; break } g = this.stack.pop(); d = this.stack.pop(); this.stack.push(d / g); break; case 3088: if (2 > this.stack.length) { A = !0; break } g = this.stack.pop(); d = this.stack.pop(); 0 === g && 3 === d ? (g = this.stack.splice(this.stack.length - 17, 17), this.stack.push(g[2] + g[0], g[3] + g[1], g[4], g[5], g[6], g[7], g[8], g[9], g[10], g[11], g[12], g[13], g[14]), A = this.executeCommand(13, J, !0), this.flexing = !1, this.stack.push(g[15], g[16])) : 1 === g && 0 === d && (this.flexing = !0); break; case 3089: break; case 3105: this.stack = []; break; default: b('Unknown type 1 charstring command of "' + g + '"') } if (A) break } else g = 246 >= g ? g - 139 : 250 >= g ? 256 * (g - 247) + a[++m] + 108 : 254 >= g ? -(256 * (g - 251)) - a[++m] - 108 : (a[++m] & 255) << 24 | (a[++m] & 255) << 16 | (a[++m] & 255) << 8 | (a[++m] & 255) << 0, this.stack.push(g); return A }, executeCommand: function (a, b, h) { var e = this.stack.length; if (a > e) return !0; for (var k = e - a, g = k; g < e; g++) { var m = this.stack[g]; m === (m | 0) ? this.output.push(28, m >> 8 & 255, m & 255) : (m = 65536 * m | 0, this.output.push(255, m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, m & 255)) } this.output.push.apply(this.output, b); h ? this.stack.splice(k, a) : this.stack.length = 0; return !1 } }; return a }(); l = function () { function a(b) { return 48 <= b && 57 >= b || 65 <= b && 70 >= b || 97 <= b && 102 >= b } function b(a, e, k) { if (k >= a.length) return new Uint8Array(0); e |= 0; var l; for (l = 0; l < k; l++) e = 52845 * (a[l] + e) + 22719 & 65535; var r = a.length - k, u = new Uint8Array(r); l = k; for (k = 0; k < r; l++, k++) { var H = a[l]; u[k] = H ^ e >> 8; e = 52845 * (H + e) + 22719 & 65535 } return u } function e(a) { return 47 === a || 91 === a || 93 === a || 123 === a || 125 === a || 40 === a || 41 === a } function l(e, k, u) { if (k) { e = e.getBytes(); var v; if (a(e[0]) && a(e[1]) && a(e[2]) && a(e[3])) { k = 55665; var r = e.length, P = new Uint8Array(r >>> 1), H, h; for (h = H = 0; H < r; H++) { var c = e[H]; if (a(c)) { for (H++; H < r && !a(v = e[H]) ;) H++; H < r && (c = parseInt(String.fromCharCode(c, v), 16), P[h++] = c ^ k >> 8, k = 52845 * (c + k) + 22719 & 65535) } } v = Array.prototype.slice.call(P, 4, h) } else v = b(e, 55665, 4); e = new L(v) } this.seacAnalysisEnabled = !!u; this.stream = e; this.nextChar() } l.prototype = { readNumberArray: function () { this.getToken(); for (var a = []; ;) { var b = this.getToken(); if (null === b || "]" === b || "}" === b) break; a.push(parseFloat(b || 0)) } return a }, readNumber: function () { var a = this.getToken(); return parseFloat(a || 0) }, readInt: function () { var a = this.getToken(); return parseInt(a || 0, 10) | 0 }, readBoolean: function () { return "true" === this.getToken() ? 1 : 0 }, nextChar: function () { return this.currentChar = this.stream.getByte() }, getToken: function () { for (var a = !1, b = this.currentChar; ;) { if (-1 === b) return null; if (a) { if (10 === b || 13 === b) a = !1 } else if (37 === b) a = !0; else if (!Q.isSpace(b)) break; b = this.nextChar() } if (e(b)) return this.nextChar(), String.fromCharCode(b); a = ""; do a += String.fromCharCode(b), b = this.nextChar(); while (0 <= b && !Q.isSpace(b) && !e(b)); return a }, extractFontProgram: function () { var a = this.stream, e = [], k = [], l = Object.create(null); l.lenIV = 4; for (var l = { subrs: [], charstrings: [], properties: { privateData: l } }, r, u, H; null !== (r = this.getToken()) ;) if ("/" === r) switch (r = this.getToken(), r) { case "CharStrings": this.getToken(); this.getToken(); this.getToken(); for (this.getToken() ; ;) { r = this.getToken(); if (null === r || "end" === r) break; if ("/" === r) { var h = this.getToken(); r = this.readInt(); this.getToken(); u = a.makeSubStream(a.pos, r); H = l.properties.privateData.lenIV; u = b(u.getBytes(), 4330, H); a.skip(r); this.nextChar(); r = this.getToken(); "noaccess" === r && this.getToken(); k.push({ glyph: h, encoded: u }) } } break; case "Subrs": this.readInt(); for (this.getToken() ; "dup" === this.getToken() ;) h = this.readInt(), r = this.readInt(), this.getToken(), u = a.makeSubStream(a.pos, r), H = l.properties.privateData.lenIV, u = b(u.getBytes(), 4330, H), a.skip(r), this.nextChar(), r = this.getToken(), "noaccess" === r && this.getToken(), e[h] = u; break; case "BlueValues": case "OtherBlues": case "FamilyBlues": case "FamilyOtherBlues": this.readNumberArray(); break; case "StemSnapH": case "StemSnapV": l.properties.privateData[r] = this.readNumberArray(); break; case "StdHW": case "StdVW": l.properties.privateData[r] = this.readNumberArray()[0]; break; case "BlueShift": case "lenIV": case "BlueFuzz": case "BlueScale": case "LanguageGroup": case "ExpansionFactor": l.properties.privateData[r] = this.readNumber(); break; case "ForceBold": l.properties.privateData[r] = this.readBoolean() } for (a = 0; a < k.length; a++) h = k[a].glyph, u = k[a].encoded, r = new I, u = r.convert(u, e, this.seacAnalysisEnabled), H = r.output, u && (H = [14]), l.charstrings.push({ glyphName: h, charstring: H, width: r.width, lsb: r.lsb, seac: r.seac }); return l }, extractFontHeader: function (a) { for (var b; null !== (b = this.getToken()) ;) if ("/" === b) switch (b = this.getToken(), b) { case "FontMatrix": var e = this.readNumberArray(); a.fontMatrix = e; break; case "Encoding": var l = this.getToken(); if (/^\d+$/.test(l)) { e = []; l = parseInt(l, 10) | 0; this.getToken(); for (var r = 0; r < l; r++) { for (b = this.getToken() ; "dup" !== b && "def" !== b;) if (b = this.getToken(), null === b) return; if ("def" === b) break; b = this.readInt(); this.getToken(); var u = this.getToken(); e[b] = u; this.getToken() } } else e = k(l); a.builtInEncoding = e; break; case "FontBBox": e = this.readNumberArray(), a.ascent = e[3], a.descent = e[1], a.ascentScaled = !0 } } }; return l }(); e.Type1Parser = l }); (function (e, l) { l(e.pdfjsCoreFonts = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream, e.pdfjsCoreParser, e.pdfjsCoreGlyphList, e.pdfjsCoreCharsets, e.pdfjsCoreFontRenderer, e.pdfjsCoreEncodings, e.pdfjsCoreStandardFonts, e.pdfjsCoreUnicode, e.pdfjsCoreType1Parser, e.pdfjsCoreCFFParser) })(this, function (e, l, R, O, a, b, L, Q, k, I, X, N, u) { function G(a) { if (a.fontMatrix && a.fontMatrix[0] !== J[0]) { var b = .001 / a.fontMatrix[0], d = a.widths, f; for (f in d) d[f] *= b; a.defaultWidth *= b } } function M(a, b) { switch (a) { case "Type1": return "Type1C" === b ? v.TYPE1C : v.TYPE1; case "CIDFontType0": return "CIDFontType0C" === b ? v.CIDFONTTYPE0C : v.CIDFONTTYPE0; case "OpenType": return v.OPENTYPE; case "TrueType": return v.TRUETYPE; case "CIDFontType2": return v.CIDFONTTYPE2; case "MMType1": return v.MMTYPE1; case "Type0": return v.TYPE0; default: return v.UNKNOWN } } function K(a, b, d) { var f = Object.create(null), c, g; if (a.baseEncodingName) for (g = x(a.baseEncodingName), c = 0; c < g.length; c++) b = d.indexOf(g[c]), f[c] = 0 <= b ? b : 0; else if (a.flags & na.Symbolic) for (c in b) f[c] = b[c]; else for (g = T, c = 0; c < g.length; c++) b = d.indexOf(g[c]), f[c] = 0 <= b ? b : 0; if (a = a.differences) for (c in a) b = d.indexOf(a[c]), f[c] = 0 <= b ? b : 0; return f } var J = l.FONT_IDENTITY_MATRIX, v = l.FontType, r = l.assert, P = l.bytesToString, H = l.error, h = l.info, c = l.isArray, C = l.isInt, F = l.isNum, n = l.readUint32, A = l.shadow, g = l.string32, m = l.warn, d = l.MissingDataException, f = O.Stream, q = a.Lexer, w = b.getGlyphsUnicode, U = b.getDingbatsGlyphsUnicode, V = Q.FontRendererFactory, T = k.StandardEncoding, B = k.MacRomanEncoding, E = k.SymbolSetEncoding, t = k.ZapfDingbatsEncoding, x = k.getEncoding, S = I.getStdFontMap, z = I.getNonStdFontMap, y = I.getGlyphMapForStandardFonts, p = I.getSupplementalGlyphMapForArialBlack, D = X.getUnicodeRangeFor, W = X.mapSpecialUnicodeValues, eb = X.getUnicodeForGlyph, ya = N.Type1Parser, Y = u.CFFStandardStrings, sb = u.CFFParser, Wa = u.CFFCompiler, ta = u.CFF, da = u.CFFHeader, ia = u.CFFTopDict, la = u.CFFPrivateDict, pa = u.CFFStrings, Ka = u.CFFIndex, ha = u.CFFCharset, Xa = !1, ma = !1, na = { FixedPitch: 1, Serif: 2, Symbolic: 4, Script: 8, Nonsymbolic: 32, Italic: 64, AllCap: 65536, SmallCap: 131072, ForceBold: 262144 }, La = ".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question 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 bracketleft backslash bracketright asciicircum underscore grave 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 braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth eth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior onehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla Cacute cacute Ccaron ccaron dcroat".split(" "), oa = function () { function a(b, d, f, c, g, h, e, m) { this.fontChar = b; this.unicode = d; this.accent = f; this.width = c; this.vmetric = g; this.operatorListId = h; this.isSpace = e; this.isInFont = m } a.prototype.matchesForCache = function (a, b, d, f, c, g, h, e) { return this.fontChar === a && this.unicode === b && this.accent === d && this.width === f && this.vmetric === c && this.operatorListId === g && this.isSpace === h && this.isInFont === e }; return a }(), za = function () { function a(b) { this._map = b } a.prototype = { get length() { return this._map.length }, forEach: function (a) { for (var b in this._map) a(b, this._map[b].charCodeAt(0)) }, has: function (a) { return void 0 !== this._map[a] }, get: function (a) { return this._map[a] }, charCodeOf: function (a) { return this._map.indexOf(a) } }; return a }(), ja = function () { function a(b, d) { this.firstChar = b; this.lastChar = d } a.prototype = { get length() { return this.lastChar + 1 - this.firstChar }, forEach: function (a) { for (var b = this.firstChar, d = this.lastChar; b <= d; b++) a(b, b) }, has: function (a) { return this.firstChar <= a && a <= this.lastChar }, get: function (a) { if (this.firstChar <= a && a <= this.lastChar) return String.fromCharCode(a) }, charCodeOf: function (a) { return C(a) && a >= this.firstChar && a <= this.lastChar ? a : -1 } }; return a }(), ua = function () { function a(b, d, f) { b[d] = f >> 8 & 255; b[d + 1] = f & 255 } function b(a, d, f) { a[d] = f >> 24 & 255; a[d + 1] = f >> 16 & 255; a[d + 2] = f >> 8 & 255; a[d + 3] = f & 255 } function d(a) { this.sfnt = a; this.tables = Object.create(null) } d.getSearchParams = function (a, b) { for (var d = 1, f = 0; (d ^ a) > d;) d <<= 1, f++; d *= b; return { range: d, entry: f, rangeShift: b * a - d } }; d.prototype = { toArray: function () { var f = this.sfnt, c = this.tables, h = Object.keys(c); h.sort(); var e = h.length, m, k, p, l = 12 + 16 * e, D = [l]; for (m = 0; m < e; m++) p = c[h[m]], l += (p.length + 3 & -4) >>> 0, D.push(l); var q = new Uint8Array(l); for (m = 0; m < e; m++) { p = c[h[m]]; l = q; k = D[m]; var y = void 0, t = void 0; if (p instanceof Uint8Array) l.set(p, k); else if ("string" === typeof p) for (y = 0, t = p.length; y < t; y++) l[k++] = p.charCodeAt(y) & 255; else for (y = 0, t = p.length; y < t; y++) l[k++] = p[y] & 255 } "true" === f && (f = g(65536)); q[0] = f.charCodeAt(0) & 255; q[1] = f.charCodeAt(1) & 255; q[2] = f.charCodeAt(2) & 255; q[3] = f.charCodeAt(3) & 255; a(q, 4, e); m = d.getSearchParams(e, 16); a(q, 6, m.range); a(q, 8, m.entry); a(q, 10, m.rangeShift); l = 12; for (m = 0; m < e; m++) { p = h[m]; q[l] = p.charCodeAt(0) & 255; q[l + 1] = p.charCodeAt(1) & 255; q[l + 2] = p.charCodeAt(2) & 255; q[l + 3] = p.charCodeAt(3) & 255; y = 0; f = D[m]; for (k = D[m + 1]; f < k; f += 4) t = n(q, f), y = y + t >>> 0; b(q, l + 4, y); b(q, l + 8, D[m]); b(q, l + 12, c[p].length); l += 16 } return q }, addTable: function (a, b) { if (a in this.tables) throw Error("Table " + a + " already exists"); this.tables[a] = b } }; return d }(), xa = new Int32Array([0, 32, 127, 161, 173, 174, 1536, 1920, 2208, 4256, 6016, 6144, 8192, 8208, 8209, 8210, 8232, 8240, 8287, 8304, 9676, 9677, 43616, 43648, 65520, 65536]); l = function () { function a(b, d, f) { var c, g, n; this.name = b; this.loadedName = f.loadedName; this.isType3Font = f.isType3Font; this.sizes = []; this.missingFile = !1; this.glyphCache = Object.create(null); var D = b.split("+"), D = 1 < D.length ? D[1] : D[0], D = D.split(/[-,_]/g)[0]; this.isSerifFont = !!(f.flags & na.Serif); this.isSymbolicFont = !!(f.flags & na.Symbolic); this.isMonospace = !!(f.flags & na.FixedPitch); var D = f.type, A = f.subtype; this.type = D; this.fallbackName = this.isMonospace ? "monospace" : this.isSerifFont ? "serif" : "sans-serif"; this.differences = f.differences; this.widths = f.widths; this.defaultWidth = f.defaultWidth; this.composite = f.composite; this.wideChars = f.wideChars; this.cMap = f.cMap; this.ascent = f.ascent / 1E3; this.descent = f.descent / 1E3; this.fontMatrix = f.fontMatrix; this.bbox = f.bbox; this.toUnicode = f.toUnicode; this.toFontChar = []; if ("Type3" === f.type) { for (c = 0; 256 > c; c++) this.toFontChar[c] = this.differences[c] || f.defaultEncoding[c]; this.fontType = v.TYPE3 } else { this.cidEncoding = f.cidEncoding; if (this.vertical = f.vertical) this.vmetrics = f.vmetrics, this.defaultVMetrics = f.defaultVMetrics; var r; if (!d || d.isEmpty) { d && m('Font file is empty in "' + b + '" (' + this.loadedName + ")"); this.missingFile = !0; d = b.replace(/[,_]/g, "-"); var F = S(), x = z(), C = !!F[d] || !(!x[d] || !F[x[d]]); d = F[d] || x[d] || d; this.bold = -1 !== d.search(/bold/gi); this.italic = -1 !== d.search(/oblique/gi) || -1 !== d.search(/italic/gi); this.black = -1 !== b.search(/Black/g); this.remeasure = 0 < Object.keys(this.widths).length; if (C && "CIDFontType2" === D && 0 === f.cidEncoding.indexOf("Identity-")) { var F = y(), u = []; for (c in F) u[+c] = F[c]; if (/ArialBlack/i.test(b)) for (c in b = p(), b) u[+c] = b[c]; this.toUnicode instanceof ja || this.toUnicode.forEach(function (a, b) { u[+a] = b }); this.toFontChar = u; this.toUnicode = new za(u) } else /Symbol/i.test(d) ? this.toFontChar = q(E, w(), f.differences) : /Dingbats/i.test(d) ? (/Wingdings/i.test(b) && m("Non-embedded Wingdings font, falling back to ZapfDingbats."), this.toFontChar = q(t, U(), f.differences)) : C ? this.toFontChar = q(f.defaultEncoding, w(), f.differences) : (r = w(), this.toUnicode.forEach(function (a, b) { this.composite || (g = f.differences[a] || f.defaultEncoding[a], n = eb(g, r), -1 !== n && (b = n)); this.toFontChar[a] = b }.bind(this))); this.loadedName = d.split("-")[0]; this.loading = !1; this.fontType = M(D, A) } else { "Type1C" === A && "Type1" !== D && "MMType1" !== D && (e(d) ? A = "TrueType" : D = "Type1"); "CIDFontType0C" === A && "CIDFontType0" !== D && (D = "CIDFontType0"); "OpenType" === A && (D = "OpenType"); "CIDFontType0" === D && (l(d) ? A = "CIDFontType0" : k(d) ? D = A = "OpenType" : A = "CIDFontType0C"); switch (D) { case "MMType1": h("MMType1 font (" + b + "), falling back to Type1."); case "Type1": case "CIDFontType0": this.mimetype = "font/opentype"; c = "Type1C" === A || "CIDFontType0C" === A ? new Ma(d, f) : new aa(b, d, f); G(f); F = this.convert(b, c, f); break; case "OpenType": case "TrueType": case "CIDFontType2": this.mimetype = "font/opentype"; F = this.checkAndRepair(b, d, f); this.isOpenType && (G(f), D = "OpenType"); break; default: H("Font " + D + " is not supported") } this.data = F; this.fontType = M(D, A); this.fontMatrix = f.fontMatrix; this.widths = f.widths; this.defaultWidth = f.defaultWidth; this.encoding = f.baseEncoding; this.seacMap = f.seacMap; this.loading = !0 } } } function b(a, d) { var f = (a << 8) + d; return f & 32768 ? f - 65536 : f } function d(a) { return String.fromCharCode(a >> 8 & 255, a & 255) } function c(a) { a = 32767 < a ? 32767 : -32768 > a ? -32768 : a; return String.fromCharCode(a >> 8 & 255, a & 255) } function e(a) { a = a.peekBytes(4); return 65536 === n(a, 0) } function k(a) { a = a.peekBytes(4); return "OTTO" === P(a) } function l(a) { a = a.peekBytes(2); return 37 === a[0] && 33 === a[1] || 128 === a[0] && 1 === a[1] ? !0 : !1 } function q(a, b, d) { for (var f = [], c, g = 0, h = a.length; g < h; g++) c = eb(a[g], b), -1 !== c && (f[g] = c); for (var e in d) c = eb(d[e], b), -1 !== c && (f[+e] = c); return f } function C(a, b) { var d = b.toUnicode, f = !!(b.flags & na.Symbolic), c = b.toUnicode instanceof ja, g = Object.create(null), h = [], e = [], m = 57344, n; for (n in a) { n |= 0; var k = a[n], p = n; if (!c && d.has(n)) { var l = d.get(p); 1 === l.length && (p = l.charCodeAt(0)) } if (!(l = void 0 !== e[p])) { for (var l = 0, D = xa.length - 1; l < D;) { var q = l + D + 1 >> 1; p < xa[q] ? D = q - 1 : l = q } l = !(l & 1) } if ((l || f && c) && 63743 >= m) { do p = m++, Xa && 61440 === p && (p = 61472, m = p + 1); while (void 0 !== e[p] && 63743 >= m) } g[p] = k; h[n] = p; e[p] = !0 } return { toFontChar: h, charCodeToGlyphId: g, nextAvailableFontCharCode: m } } function u(a, b) { var d = [], f; for (f in a) a[f] >= b || d.push({ fontCharCode: f | 0, glyphId: a[f] }); d.sort(function (a, b) { return a.fontCharCode - b.fontCharCode }); f = []; for (var c = d.length, g = 0; g < c;) { var h = d[g].fontCharCode, e = [d[g].glyphId]; ++g; for (var m = h; g < c && m + 1 === d[g].fontCharCode && (e.push(d[g].glyphId), ++m, ++g, 65535 !== m) ;); f.push([h, m, e]) } return f } function N(a, b) { var f = u(a, b), c = 65535 < f[f.length - 1][1] ? 2 : 1, h = "\x00\x00" + d(c) + "\x00\u0003\x00\u0001" + g(4 + 8 * c), e, m, n, k; for (e = f.length - 1; 0 <= e && !(65535 >= f[e][0]) ; --e); m = e + 1; 65535 > f[e][0] && 65535 === f[e][1] && (f[e][1] = 65534); var p = 65535 > f[e][1] ? 1 : 0, l = m + p, D = ua.getSearchParams(l, 2), q = "", y = "", t = "", A = "", w = "", v = 0, r, F, z, x; for (e = 0; e < m; e++) { r = f[e]; F = r[0]; z = r[1]; q += d(F); y += d(z); x = r[2]; r = !0; n = 1; for (k = x.length; n < k; ++n) if (x[n] !== x[n - 1] + 1) { r = !1; break } if (r) t += d(x[0] - F & 65535), A += d(0); else for (n = 2 * (l - e) + 2 * v, v += z - F + 1, t += d(0), A += d(n), n = 0, k = x.length; n < k; ++n) w += d(x[n]) } 0 < p && (y += "\u00ff\u00ff", q += "\u00ff\u00ff", t += "\x00\u0001", A += "\x00\x00"); p = "\x00\x00" + d(2 * l) + d(D.range) + d(D.entry) + d(D.rangeShift) + y + "\x00\x00" + q + t + A + w; e = l = ""; if (1 < c) { h += "\x00\u0003\x00\n" + g(8 * c + 8 + p.length); l = ""; e = 0; for (m = f.length; e < m; e++) { r = f[e]; F = r[0]; x = r[2]; c = x[0]; n = 1; for (k = x.length; n < k; ++n) x[n] !== x[n - 1] + 1 && (z = r[0] + n - 1, l += g(F) + g(z) + g(c), F = z + 1, c = x[n]); l += g(F) + g(r[1]) + g(c) } e = "\x00\f\x00\x00" + g(l.length + 16) + "\x00\x00\x00\x00" + g(l.length / 12) } return h + "\x00\u0004" + d(p.length + 4) + p + e + l } function K(a) { var b = new f(a.data), d = b.getUint16(); b.getBytes(60); var c = b.getUint16(); if (4 > d && c & 768) return !1; d = b.getUint16(); c = b.getUint16(); if (d > c) return !1; b.getBytes(6); if (0 === b.getUint16()) return !1; a.data[8] = a.data[9] = 0; return !0 } function I(a, b, f) { f = f || { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 }; var c = 0, h = 0, e = 0, m = 0, n = null, k = 0; if (b) for (var p in b) { p |= 0; if (n > p || !n) n = p; k < p && (k = p); b = D(p); 32 > b ? c |= 1 << b : 64 > b ? h |= 1 << b - 32 : 96 > b ? e |= 1 << b - 64 : 123 > b ? m |= 1 << b - 96 : H("Unicode ranges Bits > 123 are reserved for internal usage") } else n = 0, k = 255; b = a.bbox || [0, 0, 0, 0]; p = f.unitsPerEm || 1 / (a.fontMatrix || J)[0]; var l = a.ascentScaled ? 1 : p / 1E3; p = f.ascent || Math.round(l * (a.ascent || b[3])); l = f.descent || Math.round(l * (a.descent || b[1])); 0 < l && 0 < a.descent && 0 > b[1] && (l = -l); b = f.yMax || p; f = -f.yMin || -l; return "\x00\u0003\u0002$\u0001\u00f4\x00\u0005\x00\x00\u0002\u008a\u0002\u00bb\x00\x00\x00\u008c\u0002\u008a\u0002\u00bb\x00\x00\u0001\u00df\x001\u0001\u0002\x00\x00\x00\x00\u0006" + String.fromCharCode(a.fixedPitch ? 9 : 0) + "\x00\x00\x00\x00\x00\x00" + g(c) + g(h) + g(e) + g(m) + "*21*" + d(a.italicAngle ? 1 : 0) + d(n || a.firstChar) + d(k || a.lastChar) + d(p) + d(l) + "\x00d" + d(b) + d(f) + "\x00\x00\x00\x00\x00\x00\x00\x00" + d(a.xHeight) + d(a.capHeight) + d(0) + d(n || a.firstChar) + "\x00\u0003" } function ya(a) { return "\x00\u0003\x00\x00" + g(Math.floor(a.italicAngle * Math.pow(2, 16))) + "\x00\x00\x00\x00" + g(a.fixedPitch) + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" } function L(a, b) { b || (b = [[], []]); var f = [b[0][0] || "Original licence", b[0][1] || a, b[0][2] || "Unknown", b[0][3] || "uniqueID", b[0][4] || a, b[0][5] || "Version 0.11", b[0][6] || "", b[0][7] || "Unknown", b[0][8] || "Unknown", b[0][9] || "Unknown"], c = [], g, h, e, m, n; g = 0; for (h = f.length; g < h; g++) { n = b[1][g] || f[g]; var p = []; e = 0; for (m = n.length; e < m; e++) p.push(d(n.charCodeAt(e))); c.push(p.join("")) } var p = [f, c], k = ["\x00\u0001", "\x00\u0003"], l = ["\x00\x00", "\x00\u0001"], D = ["\x00\x00", "\u0004\t"]; g = f.length * k.length; var q = "\x00\x00" + d(g) + d(12 * g + 6), y = 0; g = 0; for (h = k.length; g < h; g++) { var t = p[g]; e = 0; for (m = t.length; e < m; e++) { n = t[e]; var A = k[g] + l[g] + D[g] + d(e) + d(n.length) + d(y), q = q + A, y = y + n.length } } return q += f.join("") + c.join("") } a.getFontID = function () { var a = 1; return function () { return String(a++) } }(); a.prototype = { name: null, font: null, mimetype: null, encoding: null, get renderer() { var a = V.create(this, ma); return A(this, "renderer", a) }, exportData: function () { var a = {}, b; for (b in this) this.hasOwnProperty(b) && (a[b] = this[b]); return a }, checkAndRepair: function (a, d, c) { function g(a) { var b = P(a.getBytes(4)), d = a.getInt32() >>> 0, f = a.getInt32() >>> 0, c = a.getInt32() >>> 0, h = a.pos; a.pos = a.start ? a.start : 0; a.skip(f); var e = a.getBytes(c); a.pos = h; "head" === b && (e[8] = e[9] = e[10] = e[11] = 0, e[17] |= 32); return { tag: b, checksum: d, length: c, offset: f, data: e } } function e(a, b, d, f) { if (!a) return m("No cmap table available."), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; var c; a = (b.start ? b.start : 0) + a.offset; b.pos = a; b.getUint16(); var g = b.getUint16(), h, n = !1; for (c = 0; c < g; c++) { var p = b.getUint16(), k = b.getUint16(), l = b.getInt32() >>> 0, D = !1; 0 === p && 0 === k ? D = !0 : 1 === p && 0 === k ? D = !0 : 3 !== p || 1 !== k || (d || !f) && h ? d && 3 === p && 0 === k && (n = D = !0) : (D = !0, d || (n = !0)); D && (h = { platformId: p, encodingId: k, offset: l }); if (n) break } h && (b.pos = a + h.offset); if (!h || -1 === b.peekByte()) return m("Could not find a preferred cmap table."), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; a = b.getUint16(); b.getUint16(); b.getUint16(); f = !1; d = []; if (0 === a) { for (c = 0; 256 > c; c++) (a = b.getByte()) && d.push({ charCode: c, glyphId: a }); f = !0 } else if (4 === a) { g = b.getUint16() >> 1; b.getBytes(6); p = []; for (n = 0; n < g; n++) p.push({ end: b.getUint16() }); b.getUint16(); for (n = 0; n < g; n++) p[n].start = b.getUint16(); for (n = 0; n < g; n++) p[n].delta = b.getUint16(); for (n = a = 0; n < g; n++) c = p[n], (k = b.getUint16()) ? (l = (k >> 1) - (g - n), c.offsetIndex = l, a = Math.max(a, l + c.end - c.start + 1)) : c.offsetIndex = -1; D = []; for (c = 0; c < a; c++) D.push(b.getUint16()); for (n = 0; n < g; n++) { c = p[n]; a = c.start; b = c.end; var q = c.delta, l = c.offsetIndex; for (c = a; c <= b; c++) 65535 !== c && (k = 0 > l ? c : D[l + c - a], k = k + q & 65535, 0 !== k && d.push({ charCode: c, glyphId: k })) } } else if (6 === a) for (a = b.getUint16(), g = b.getUint16(), c = 0; c < g; c++) k = b.getUint16(), d.push({ charCode: a + c, glyphId: k }); else return m("cmap table has unsupported format: " + a), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; d.sort(function (a, b) { return a.charCode - b.charCode }); for (c = 1; c < d.length; c++) d[c - 1].charCode === d[c].charCode && (d.splice(c, 1), c--); return { platformId: h.platformId, encodingId: h.encodingId, mappings: d, hasShortCmap: f } } function n(a, b, d, f, c, g) { if (12 >= d - b) return 0; a = a.subarray(b, d); var h = a[0] << 8 | a[1]; if (h & 32768) return f.set(a, c), a.length; d = 10; var e = 0; for (b = 0; b < h; b++) e = (a[d] << 8 | a[d + 1]) + 1, d += 2; var h = d, m = a[d] << 8 | a[d + 1], k = d += 2 + m, p = 0; for (b = 0; b < e; b++) { var l = a[d++]; l & 192 && (a[d - 1] = l & 63); var D = (l & 2 ? 1 : l & 16 ? 0 : 2) + (l & 4 ? 1 : l & 32 ? 0 : 2), p = p + D; l & 8 && (l = a[d++], b += l, p += l * D) } if (0 === p) return 0; b = d + p; if (b > a.length) return 0; if (!g && 0 < m) return f.set(a.subarray(0, h), c), f.set([0, 0], c + h), f.set(a.subarray(k, b), c + h + 2), b -= m, 3 < a.length - b && (b = b + 3 & -4), b; if (3 < a.length - b) return b = b + 3 & -4, f.set(a.subarray(0, b), c), b; f.set(a, c); return a.length } function p(a, b, d, f, c, g) { var h, e; f ? (f = 4, h = function (a, b) { return a[b] << 24 | a[b + 1] << 16 | a[b + 2] << 8 | a[b + 3] }, e = function (a, b, d) { a[b] = d >>> 24 & 255; a[b + 1] = d >> 16 & 255; a[b + 2] = d >> 8 & 255; a[b + 3] = d & 255 }) : (f = 2, h = function (a, b) { return a[b] << 9 | a[b + 1] << 1 }, e = function (a, b, d) { a[b] = d >> 9 & 255; a[b + 1] = d >> 1 & 255 }); var m = a.data, k = f * (1 + d); m.length !== k && (m = new Uint8Array(k), m.set(a.data.subarray(0, k)), a.data = m); var l = b.data, D = l.length, q = new Uint8Array(D), y = h(m, 0), t = 0, k = Object.create(null); e(m, 0, t); var A, v; A = 0; for (v = f; A < d; A++, v += f) { var w = h(m, v); w > D && (D + 3 & -4) === w && (w = D); w > D || (y === w && (k[A] = !0), y = n(l, y, w, q, t, c), t += y); e(m, v, t); y = w } if (0 === t) { a = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); A = 0; for (v = f; A < d; A++, v += f) e(m, v, a.length); b.data = a; return k } g ? (d = h(m, f), q.length > d + t ? b.data = q.subarray(0, d + t) : (b.data = new Uint8Array(d + t), b.data.set(q.subarray(0, t))), b.data.set(q.subarray(0, d), t), e(a.data, m.length - f, t + d)) : b.data = q.subarray(0, t); return k } function k(a, b, f) { var c = (d.start ? d.start : 0) + a.offset; d.pos = c; var c = c + a.length, g = d.getInt32(); d.getBytes(28); var h; a = !0; switch (g) { case 65536: h = La; break; case 131072: g = d.getUint16(); if (g !== f) { a = !1; break } var e = []; for (f = 0; f < g; ++f) { var n = d.getUint16(); if (32768 <= n) { a = !1; break } e.push(n) } if (!a) break; n = []; for (h = []; d.pos < c;) { var p = d.getByte(); h.length = p; for (f = 0; f < p; ++f) h[f] = String.fromCharCode(d.getByte()); n.push(h.join("")) } h = []; for (f = 0; f < g; ++f) c = e[f], 258 > c ? h.push(La[c]) : h.push(n[c - 258]); break; case 196608: break; default: m("Unknown/unsupported post table version " + g), a = !1, b.defaultEncoding && (h = b.defaultEncoding) } b.glyphNames = h; return a } function l(a) { var b = (d.start ? d.start : 0) + a.offset; d.pos = b; var f = [[], []], c = a.length; a = b + c; if (0 !== d.getUint16() || 6 > c) return f; var g = d.getUint16(), c = d.getUint16(), h = [], e; for (e = 0; e < g && d.pos + 12 <= a; e++) { var n = { platform: d.getUint16(), encoding: d.getUint16(), language: d.getUint16(), name: d.getUint16(), length: d.getUint16(), offset: d.getUint16() }; (1 === n.platform && 0 === n.encoding && 0 === n.language || 3 === n.platform && 1 === n.encoding && 1033 === n.language) && h.push(n) } e = 0; for (g = h.length; e < g; e++) if (n = h[e], !(0 >= n.length)) { var m = b + c + n.offset; if (!(m + n.length > a)) if (d.pos = m, m = n.name, n.encoding) { for (var k = "", p = 0, n = n.length; p < n; p += 2) k += String.fromCharCode(d.getUint16()); f[1][m] = k } else f[0][m] = P(d.getBytes(n.length)) } return f } function D(a, b) { for (var d = a.data, f = 0, c, g, h, e = 0, n = 0, k = [], p = [], l = [], q = b.tooComplexToFollowFunctions, y = !1, A = 0, v = 0, w = d.length; f < w;) { var r = d[f++]; if (64 === r) if (g = d[f++], y || v) f += g; else for (c = 0; c < g; c++) k.push(d[f++]); else if (65 === r) if (g = d[f++], y || v) f += 2 * g; else for (c = 0; c < g; c++) h = d[f++], k.push(h << 8 | d[f++]); else if (176 === (r & 248)) if (g = r - 176 + 1, y || v) f += g; else for (c = 0; c < g; c++) k.push(d[f++]); else if (184 === (r & 248)) if (g = r - 184 + 1, y || v) f += 2 * g; else for (c = 0; c < g; c++) h = d[f++], k.push(h << 8 | d[f++]); else if (43 !== r || q) if (44 !== r || q) if (45 === r) if (y) y = !1, e = f; else { c = p.pop(); if (!c) { m("TT: ENDF bad stack"); b.hintsValid = !1; return } g = l.pop(); d = c.data; f = c.i; b.functionsStackDeltas[g] = k.length - c.stackTop } else if (137 === r) { if (y || v) m("TT: nested IDEFs not allowed"), q = !0; y = !0; n = f } else 88 === r ? ++A : 27 === r ? v = A : 89 === r ? (v === A && (v = 0), --A) : 28 !== r || y || v || (g = k[k.length - 1], 0 < g && (f += g - 1)); else { if (y || v) m("TT: nested FDEFs not allowed"), q = !0; y = !0; n = f; g = k.pop(); b.functionsDefined[g] = { data: d, i: f } } else if (!y && !v) if (g = k[k.length - 1], b.functionsUsed[g] = !0, g in b.functionsStackDeltas) k.length += b.functionsStackDeltas[g]; else if (g in b.functionsDefined && 0 > l.indexOf(g)) { p.push({ data: d, i: f, stackTop: k.length - 1 }); l.push(g); c = b.functionsDefined[g]; if (!c) { m("TT: CALL non-existent function"); b.hintsValid = !1; return } d = c.data; f = c.i } if (!y && !v) { c = 142 >= r ? t[r] : 192 <= r && 223 >= r ? -1 : 224 <= r ? -2 : 0; 113 <= r && 117 >= r && (g = k.pop(), g === g && (c = 2 * -g)); for (; 0 > c && 0 < k.length;) k.pop(), c++; for (; 0 < c;) k.push(NaN), c-- } } b.tooComplexToFollowFunctions = q; k = [d]; f > d.length && k.push(new Uint8Array(f - d.length)); n > e && (m("TT: complementing a missing function tail"), k.push(new Uint8Array([34, 45]))); if (1 < k.length) { f = d = 0; for (e = k.length; f < e; f++) d += k[f].length; d = d + 3 & -4; n = new Uint8Array(d); f = p = 0; for (e = k.length; f < e; f++) n.set(k[f], p), p += k[f].length; a.data = n; a.length = d } } function q(a, b, d) { return !O[a] || !X && 0 <= b && Q.has(b) || R && 0 <= d && F(R[d]) ? !0 : !1 } function y(a, b) { if (void 0 !== b[a]) return a; var d = eb(a, b); if (-1 !== d) for (var f in b) if (b[f] === d) return f; m("Unable to recover a standard glyph name for: " + a); return a } var t = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2]; d = new f(new Uint8Array(d.getBytes())); var A = "OS/2;cmap;head;hhea;hmtx;maxp;name;post;loca;glyf;fpgm;prep;cvt ;CFF ".split(";"), v = function (a) { return { version: P(a.getBytes(4)), numTables: a.getUint16(), searchRange: a.getUint16(), entrySelector: a.getUint16(), rangeShift: a.getUint16() } }(d), z = v.numTables, E, u, W = Object.create(null); W["OS/2"] = null; W.cmap = null; W.head = null; W.hhea = null; W.hmtx = null; W.maxp = null; W.name = null; W.post = null; for (var J, U = 0; U < z; U++) J = g(d), 0 > A.indexOf(J.tag) || 0 !== J.length && (W[J.tag] = J); if (A = !W["CFF "]) W.loca || H('Required "loca" table is not found'), W.glyf || (m('Required "glyf" table is not found -- trying to recover.'), W.glyf = { tag: "glyf", data: new Uint8Array(0) }), this.isOpenType = !1; else { if ("OTTO" === v.version && "CIDFontType2" !== c.type || !W.head || !W.hhea || !W.maxp || !W.post) return u = new f(W["CFF "].data), E = new Ma(u, c), G(c), this.convert(a, E, c); delete W.glyf; delete W.loca; delete W.fpgm; delete W.prep; delete W["cvt "]; this.isOpenType = !0 } W.maxp || H('Required "maxp" table is not found'); d.pos = (d.start || 0) + W.maxp.offset; var z = d.getInt32(), M = d.getUint16(), S = 0; 65536 <= z && 22 <= W.maxp.length && (d.pos += 8, 2 < d.getUint16() && (W.maxp.data[14] = 0, W.maxp.data[15] = 2), d.pos += 4, S = d.getUint16()); U = !1; "CIDFontType2" === c.type && c.toUnicode && "\x00" < c.toUnicode.get(0) && (U = !0, M++, W.maxp.data[4] = M >> 8, W.maxp.data[5] = M & 255); z = function (a, b, d) { var f = { functionsDefined: [], functionsUsed: [], functionsStackDeltas: [], tooComplexToFollowFunctions: !1, hintsValid: !0 }; a && D(a, f); b && D(b, f); if (a && (a = S, !f.tooComplexToFollowFunctions)) if (f.functionsDefined.length > a) m("TT: more functions defined than expected"), f.hintsValid = !1; else { b = 0; for (var c = f.functionsUsed.length; b < c; b++) { if (b > a) { m("TT: invalid function id: " + b); f.hintsValid = !1; break } if (f.functionsUsed[b] && !f.functionsDefined[b]) { m("TT: undefined function: " + b); f.hintsValid = !1; break } } } d && d.length & 1 && (a = new Uint8Array(d.length + 1), a.set(d.data), d.data = a); return f.hintsValid }(W.fpgm, W.prep, W["cvt "], S); z || (delete W.fpgm, delete W.prep, delete W["cvt "]); (function (a, b, d, f) { b ? (a.pos = (a.start ? a.start : 0) + b.offset, a.pos += b.length - 2, a = a.getUint16(), a > f && (h("The numOfMetrics (" + a + ") should not be greater than the numGlyphs (" + f + ")"), a = f, b.data[34] = (a & 65280) >> 8, b.data[35] = a & 255), b = f - a - (d.length - 4 * a >> 1), 0 < b && (b = new Uint8Array(d.length + 2 * b), b.set(d.data), d.data = b)) : d && (d.data = null) })(d, W.hhea, W.hmtx, M); W.head || H('Required "head" table is not found'); (function (a, b, d) { a = a.data; var f = (a[0] << 24) + (a[1] << 16) + (a[2] << 8) + a[3]; 1 !== f >> 16 && (h("Attempting to fix invalid version in head table: " + f), a[0] = 0, a[1] = 1, a[2] = 0, a[3] = 0); f = (a[50] << 8) + a[51]; if (0 > f || 1 < f) h("Attempting to fix invalid indexToLocFormat in head table: " + f), b += 1, d === b << 1 ? (a[50] = 0, a[51] = 0) : d === b << 2 ? (a[50] = 0, a[51] = 1) : m("Could not fix indexToLocFormat: " + f) })(W.head, M, A ? W.loca.length : 0); var O = Object.create(null); A && (O = p(W.loca, W.glyf, M, (W.head.data[50] << 8) + W.head.data[51], z, U)); W.hhea || H('Required "hhea" table is not found'); 0 === W.hhea.data[10] && 0 === W.hhea.data[11] && (W.hhea.data[10] = 255, W.hhea.data[11] = 255); z = { unitsPerEm: (W.head.data[18] << 8) + W.head.data[19], yMax: (W.head.data[42] << 8) + W.head.data[43], yMin: b(W.head.data[38], W.head.data[39]), ascent: (W.hhea.data[4] << 8) + W.hhea.data[5], descent: b(W.hhea.data[6], W.hhea.data[7]) }; this.ascent = z.ascent / z.unitsPerEm; this.descent = z.descent / z.unitsPerEm; W.post && (k(W.post, c, M) || (W.post = null)); var V = [], Y, Q = c.toUnicode, R = c.widths, X = Q instanceof ja || 65536 === Q.length; if ("CIDFontType2" === c.type) { var ta = c.cidToGidMap || [], Aa = 0 === ta.length; c.cMap.forEach(function (a, b) { r(65535 >= b, "Max size of CID is 65,535"); var d = -1; Aa ? d = b : void 0 !== ta[b] && (d = ta[b]); 0 <= d && d < M && q(d, a, b) && (V[a] = d) }); U && (V[0] = M - 1) } else { var U = 0 < c.differences.length || !!c.baseEncodingName, ca = e(W.cmap, d, this.isSymbolicFont, U); J = ca.platformId; var da = ca.encodingId, ca = ca.mappings, pb = ca.length; if (U && (3 === J && 1 === da || 1 === J && 0 === da) || -1 === J && -1 === da && x(c.baseEncodingName)) { var ia = []; if ("MacRomanEncoding" === c.baseEncodingName || "WinAnsiEncoding" === c.baseEncodingName) ia = x(c.baseEncodingName); var Ya = w(); for (Y = 0; 256 > Y; Y++) { var Na, pa; if (Na = this.differences && Y in this.differences ? this.differences[Y] : Y in ia && "" !== ia[Y] ? ia[Y] : T[Y]) { pa = y(Na, Ya); var la, Za = !1; 3 === J && 1 === da ? (la = Ya[pa], Za = !0) : 1 === J && 0 === da && (la = B.indexOf(pa)); for (var qa = !1, U = 0; U < pb; ++U) if (ca[U].charCode === la && q(ca[U].glyphId, Za ? Y : la, -1)) { V[Y] = ca[U].glyphId; qa = !0; break } !qa && c.glyphNames && (U = c.glyphNames.indexOf(Na), -1 === U && pa !== Na && (U = c.glyphNames.indexOf(pa)), 0 < U && q(U, -1, -1) && (V[Y] = U, qa = !0)); qa || (V[Y] = 0) } } } else if (0 === J && 0 === da) for (U = 0; U < pb; ++U) V[ca[U].charCode] = ca[U].glyphId; else for (U = 0; U < pb; ++U) Y = ca[U].charCode & 255, V[Y] = ca[U].glyphId } 0 === V.length && (V[0] = 0); la = C(V, c); this.toFontChar = la.toFontChar; W.cmap = { tag: "cmap", data: N(la.charCodeToGlyphId, M) }; W["OS/2"] && K(W["OS/2"]) || (W["OS/2"] = { tag: "OS/2", data: I(c, la.charCodeToGlyphId, z) }); W.post || (W.post = { tag: "post", data: ya(c) }); if (!A) try { u = new f(W["CFF "].data); E = (new sb(u, c, ma)).parse(); var ga = new Wa(E); W["CFF "].data = ga.compile() } catch (yb) { m("Failed to compile font " + c.loadedName) } W.name ? (c = l(W.name), W.name.data = L(a, c)) : W.name = { tag: "name", data: L(this.name) }; a = new ua(v.version); for (var aa in W) a.addTable(aa, W[aa].data); return a.toArray() }, convert: function (a, b, f) { function g(a, b) { var d = null, f; for (f in a) b === a[f] && (d || (d = []), d.push(f | 0)); return d } function h(a, b) { for (var d in a) if (b === a[d]) return d | 0; n.charCodeToGlyphId[n.nextAvailableFontCharCode] = b; return n.nextAvailableFontCharCode++ } f.fixedPitch = !1; var e = b.getGlyphMapping(f), n = C(e, f); this.toFontChar = n.toFontChar; var m = b.numGlyphs, k = b.seacs; if (ma && k && k.length) { var p = f.fontMatrix || J, l = b.getCharset(), D = Object.create(null), q; for (q in k) { q |= 0; var y = k[q], t = T[y[3]], A = l.indexOf(T[y[2]]), t = l.indexOf(t); if (!(0 > A || 0 > t)) { var y = { x: y[0] * p[0] + y[1] * p[2] + p[4], y: y[0] * p[1] + y[1] * p[3] + p[5] }, v = g(e, q); if (v) for (var w = 0, r = v.length; w < r; w++) { var z = v[w], F = n.charCodeToGlyphId, x = h(F, A), F = h(F, t); D[z] = { baseFontCharCode: x, accentFontCharCode: F, accentOffset: y } } } } f.seacMap = D } e = 1 / (f.fontMatrix || J)[0]; k = new ua("OTTO"); k.addTable("CFF ", b.data); k.addTable("OS/2", I(f, n.charCodeToGlyphId)); k.addTable("cmap", N(n.charCodeToGlyphId, m)); k.addTable("head", "\x00\u0001\x00\x00\x00\x00\u0010\x00\x00\x00\x00\x00_\u000f<\u00f5\x00\x00" + c(e) + "\x00\x00\x00\x00\u009e\x0B~'\x00\x00\x00\x00\u009e\x0B~'\x00\x00" + c(f.descent) + "\u000f\u00ff" + c(f.ascent) + d(f.italicAngle ? 2 : 0) + "\x00\u0011\x00\x00\x00\x00\x00\x00"); k.addTable("hhea", "\x00\u0001\x00\x00" + c(f.ascent) + c(f.descent) + "\x00\x00\u00ff\u00ff\x00\x00\x00\x00\x00\x00" + c(f.capHeight) + c(Math.tan(f.italicAngle) * f.xHeight) + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + d(m)); k.addTable("hmtx", function () { for (var a = b.charstrings, f = b.cff ? b.cff.widths : null, c = "\x00\x00\x00\x00", g = 1; g < m; g++) { var h = 0; a ? (h = a[g - 1], h = "width" in h ? h.width : 0) : f && (h = Math.ceil(f[g] || 0)); c += d(h) + d(0) } return c }()); k.addTable("maxp", "\x00\x00P\x00" + d(m)); k.addTable("name", L(a)); k.addTable("post", ya(f)); return k.toArray() }, get spaceWidth() { if ("_shadowWidth" in this) return this._shadowWidth; for (var a = ["space", "minus", "one", "i"], b, d = 0, f = a.length; d < f; d++) { b = a[d]; if (b in this.widths) { b = this.widths[b]; break } b = w()[b]; var c = 0; this.composite && this.cMap.contains(b) && (c = this.cMap.lookup(b)); !c && this.toUnicode && (c = this.toUnicode.charCodeOf(b)); 0 >= c && (c = b); if (b = this.widths[c]) break } return this._shadowWidth = b = b || this.defaultWidth }, charToGlyph: function (a, b) { var d, f, c, g = a; this.cMap && this.cMap.contains(a) && (g = this.cMap.lookup(a)); f = this.widths[g]; f = F(f) ? f : this.defaultWidth; var g = this.vmetrics && this.vmetrics[g], h = this.toUnicode.get(a) || a; "number" === typeof h && (h = String.fromCharCode(h)); var e = a in this.toFontChar; d = this.toFontChar[a] || a; this.missingFile && (d = W(d)); this.isType3Font && (c = d); var n = null; this.seacMap && this.seacMap[a] && (e = !0, n = this.seacMap[a], d = n.baseFontCharCode, n = { fontChar: String.fromCharCode(n.accentFontCharCode), offset: n.accentOffset }); d = String.fromCharCode(d); var m = this.glyphCache[a]; m && m.matchesForCache(d, h, n, f, g, c, b, e) || (m = new oa(d, h, n, f, g, c, b, e), this.glyphCache[a] = m); return m }, charsToGlyphs: function (a) { var b = this.charsCache, d, f; if (b && (d = b[a])) return d; b || (b = this.charsCache = Object.create(null)); d = []; var c = 0, g; if (this.cMap) for (g = Object.create(null) ; c < a.length;) { this.cMap.readCharCode(a, c, g); f = g.charcode; var h = g.length, c = c + h, h = 1 === h && 32 === a.charCodeAt(c - 1); f = this.charToGlyph(f, h); d.push(f) } else for (c = 0, g = a.length; c < g; ++c) f = a.charCodeAt(c), f = this.charToGlyph(f, 32 === f), d.push(f); return b[a] = d } }; return a }(); R = function () { function a(b) { this.error = b; this.loadedName = "g_font_error"; this.loading = !1 } a.prototype = { charsToGlyphs: function () { return [] }, exportData: function () { return { error: this.error } } }; return a }(); var aa = function () { function a(b, d, f) { for (var c = b.length, g = d.length, h = c - g, e, n = !1; f < h;) { for (e = 0; e < g && b[f + e] === d[e];) e++; if (e >= g) { for (f += e; f < c && q.isSpace(b[f]) ;) f++; n = !0; break } f++ } return { found: n, length: f } } function b(c, g, h) { var e, n = h.length1, k = g.peekBytes(6), p = 128 === k[0] && 1 === k[1]; p && (g.skip(6), n = k[5] << 24 | k[4] << 16 | k[3] << 8 | k[2]); a: { var k = [101, 101, 120, 101, 99], l = g.pos, D, q; try { D = g.getBytes(n), q = D.length } catch (y) { if (y instanceof d) throw y; } if (q === n && (q = a(D, k, n - 2 * k.length), q.found && q.length === n)) { e = new f(D); break a } m('Invalid "Length1" property in Type1 font -- trying to recover.'); for (g.pos = l; ;) { D = g.peekBytes(2048); q = a(D, k, 0); if (0 === q.length) break; g.pos += q.length; if (q.found) { e = g.pos - l; break } } g.pos = l; e ? e = new f(g.getBytes(e)) : (m('Unable to recover "Length1" property in Type1 font -- using as is.'), e = new f(g.getBytes(n))) } (new ya(e, !1, ma)).extractFontHeader(h); p && g.getBytes(6); g = g.getBytes(); g = new f(g); g = (new ya(g, !0, ma)).extractFontProgram(); for (var t in g.properties) h[t] = g.properties[t]; t = g.charstrings; p = this.getType2Charstrings(t); e = this.getType2Subrs(g.subrs); this.charstrings = t; this.data = this.wrap(c, p, this.charstrings, e, h); this.seacs = this.getSeacs(g.charstrings) } b.prototype = { get numGlyphs() { return this.charstrings.length + 1 }, getCharset: function () { for (var a = [".notdef"], b = this.charstrings, d = 0; d < b.length; d++) a.push(b[d].glyphName); return a }, getGlyphMapping: function (a) { var b = this.charstrings, d = [".notdef"], f; for (f = 0; f < b.length; f++) d.push(b[f].glyphName); if (b = a.builtInEncoding) { var c = Object.create(null), g; for (g in b) f = d.indexOf(b[g]), 0 <= f && (c[g] = f) } return K(a, c, d) }, getSeacs: function (a) { var b, d, f = []; b = 0; for (d = a.length; b < d; b++) { var c = a[b]; c.seac && (f[b + 1] = c.seac) } return f }, getType2Charstrings: function (a) { for (var b = [], d = 0, f = a.length; d < f; d++) b.push(a[d].charstring); return b }, getType2Subrs: function (a) { var b = 0, d = a.length, b = 1133 > d ? 107 : 33769 > d ? 1131 : 32768, f = [], c; for (c = 0; c < b; c++) f.push([11]); for (c = 0; c < d; c++) f.push(a[c]); return f }, wrap: function (a, b, d, f, g) { var h = new ta; h.header = new da(1, 0, 4, 4); h.names = [a]; var e = new ia; e.setByName("version", 391); e.setByName("Notice", 392); e.setByName("FullName", 393); e.setByName("FamilyName", 394); e.setByName("Weight", 395); e.setByName("Encoding", null); e.setByName("FontMatrix", g.fontMatrix); e.setByName("FontBBox", g.bbox); e.setByName("charset", null); e.setByName("CharStrings", null); e.setByName("Private", null); h.topDict = e; e = new pa; e.add("Version 0.11"); e.add("See original notice"); e.add(a); e.add(a); e.add("Medium"); h.strings = e; h.globalSubrIndex = new Ka; var e = b.length, n = [0]; for (a = 0; a < e; a++) { var m = Y.indexOf(d[a].glyphName); -1 === m && (m = 0); n.push(m >> 8 & 255, m & 255) } h.charset = new ha(!1, 0, [], n); d = new Ka; d.add([139, 14]); for (a = 0; a < e; a++) d.add(b[a]); h.charStrings = d; d = new la; d.setByName("Subrs", null); e = "BlueValues OtherBlues FamilyBlues FamilyOtherBlues StemSnapH StemSnapV BlueShift BlueFuzz BlueScale LanguageGroup ExpansionFactor ForceBold StdHW StdVW".split(" "); a = 0; for (b = e.length; a < b; a++) if (n = e[a], n in g.privateData) { m = g.privateData[n]; if (c(m)) for (var k = m.length - 1; 0 < k; k--) m[k] -= m[k - 1]; d.setByName(n, m) } h.topDict.privateDict = d; g = new Ka; a = 0; for (b = f.length; a < b; a++) g.add(f[a]); d.subrsIndex = g; return (new Wa(h)).compile() } }; return b }(), Ma = function () { function a(b, d) { this.properties = d; this.cff = (new sb(b, d, ma)).parse(); var f = new Wa(this.cff); this.seacs = this.cff.seacs; try { this.data = f.compile() } catch (c) { m("Failed to compile font " + d.loadedName), this.data = b } } a.prototype = { get numGlyphs() { return this.cff.charStrings.count }, getCharset: function () { return this.cff.charset.charset }, getGlyphMapping: function () { var a = this.cff, b = this.properties, d = a.charset.charset, f, c; if (b.composite) { f = Object.create(null); if (a.isCIDFont) for (c = 0; c < d.length; c++) a = b.cMap.charCodeOf(d[c]), f[a] = c; else for (c = 0; c < a.charStrings.count; c++) f[c] = c; return f } return f = K(b, a.encoding ? a.encoding.encoding : null, d) } }; return a }(); "undefined" !== typeof navigator && /Windows/.test(navigator.userAgent) && (ma = !0); "undefined" !== typeof navigator && /Windows.*Chrome/.test(navigator.userAgent) && (Xa = !0); e.SEAC_ANALYSIS_ENABLED = ma; e.ErrorFont = R; e.Font = l; e.FontFlags = na; e.IdentityToUnicodeMap = ja; e.ToUnicodeMap = za; e.getFontType = M }); (function (e, l) { l(e.pdfjsCoreFunction = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCorePsParser) })(this, function (e, l, R, O) { var a = l.error, b = l.info, L = l.isArray, Q = l.isBool, k = R.isDict, I = R.isStream, X = O.PostScriptLexer, N = O.PostScriptParser, u = function () { return { getSampleArray: function (a, b, e, k) { var l, h, c = 1; l = 0; for (h = a.length; l < h; l++) c *= a[l]; c *= b; a = Array(c); h = b = 0; var C = 1 / (Math.pow(2, e) - 1); k = k.getBytes((c * e + 7) / 8); var F = 0; for (l = 0; l < c; l++) { for (; b < e;) h <<= 8, h |= k[F++], b += 8; b -= e; a[l] = (h >> b) * C; h &= (1 << b) - 1 } return a }, getIR: function (b, e) { var k = e.dict; k || (k = e); var l = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript], u = k.get("FunctionType"); (l = l[u]) || a("Unknown type of function"); return l.call(this, e, k, b) }, fromIR: function (a) { switch (a[0]) { case 0: return this.constructSampledFromIR(a); case 2: return this.constructInterpolatedFromIR(a); case 3: return this.constructStichedFromIR(a); default: return this.constructPostScriptFromIR(a) } }, parse: function (a, b) { var e = this.getIR(a, b); return this.fromIR(e) }, parseArray: function (a, b) { if (!L(b)) return this.parse(a, b); for (var e = [], k = 0, l = b.length; k < l; k++) { var h = a.fetchIfRef(b[k]); e.push(u.parse(a, h)) } return function (a, b, h, n) { for (var k = 0, g = e.length; k < g; k++) e[k](a, b, h, n + k) } }, constructSampled: function (e, k) { function l(a) { for (var b = a.length, f = [], c = 0, g = 0; g < b; g += 2) f[c] = [a[g], a[g + 1]], ++c; return f } var u = k.get("Domain"), H = k.get("Range"); u && H || a("No domain or range"); var h = u.length / 2, c = H.length / 2, u = l(u), H = l(H), C = k.get("Size"), F = k.get("BitsPerSample"), n = k.get("Order") || 1; 1 !== n && b("No support for cubic spline interpolation: " + n); n = k.get("Encode"); if (!n) for (var n = [], A = 0; A < h; ++A) n.push(0), n.push(C[A] - 1); var n = l(n), A = (A = k.get("Decode")) ? l(A) : H, g = this.getSampleArray(C, c, F, e); return [0, h, u, n, A, g, C, c, Math.pow(2, F) - 1, H] }, constructSampledFromIR: function (a) { return function (b, e, k, l) { var h = a[1], c = a[2], C = a[3], F = a[4], n = a[5], A = a[6], g = a[7], m = a[9], d = 1 << h, f = new Float64Array(d), q = new Uint32Array(d), w, u; for (u = 0; u < d; u++) f[u] = 1; var G = g, N = 1; for (w = 0; w < h; ++w) { u = c[w][0]; var B = c[w][1], E, t = C[w][0]; E = t + (C[w][1] - t) / (B - u) * (Math.min(Math.max(b[e + w], u), B) - u); B = A[w]; E = Math.min(Math.max(E, 0), B - 1); u = E < B - 1 ? Math.floor(E) : E - 1; t = u + 1 - E; E -= u; var x = u * G, M = x + G; for (u = 0; u < d; u++) u & N ? (f[u] *= E, q[u] += M) : (f[u] *= t, q[u] += x); G *= B; N <<= 1 } for (u = 0; u < g; ++u) { for (w = b = 0; w < d; w++) b += n[q[w] + u] * f[w]; w = F[u][0]; b = w + (F[u][1] - w) / 1 * (b - 0); k[l + u] = Math.min(Math.max(b, m[u][0]), m[u][1]) } } }, constructInterpolated: function (b, e) { var k = e.get("C0") || [0], l = e.get("C1") || [1], u = e.get("N"); L(k) && L(l) || a("Illegal dictionary for interpolated function"); for (var h = k.length, c = [], C = 0; C < h; ++C) c.push(l[C] - k[C]); return [2, k, c, u] }, constructInterpolatedFromIR: function (a) { var b = a[1], e = a[2], k = a[3], l = e.length; return function (a, c, u, F) { a = 1 === k ? a[c] : Math.pow(a[c], k); for (c = 0; c < l; ++c) u[F + c] = b[c] + a * e[c] } }, constructStiched: function (b, e, k) { (b = e.get("Domain")) || a("No domain"); 1 !== b.length / 2 && a("Bad domain for stiched function"); for (var l = e.get("Functions"), H = [], h = 0, c = l.length; h < c; ++h) H.push(u.getIR(k, k.fetchIfRef(l[h]))); k = e.get("Bounds"); e = e.get("Encode"); return [3, b, k, e, H] }, constructStichedFromIR: function (a) { var b = a[1], e = a[2], k = a[3]; a = a[4]; for (var l = [], h = new Float32Array(1), c = 0, C = a.length; c < C; c++) l.push(u.fromIR(a[c])); return function (a, c, A, g) { a = a[c]; c = b[0]; var m = b[1]; a > m ? a = m : a < c && (a = c); c = 0; for (m = e.length; c < m && !(a < e[c]) ; ++c); m = b[0]; 0 < c && (m = e[c - 1]); var d = b[1]; c < e.length && (d = e[c]); var f = k[2 * c], q = k[2 * c + 1]; h[0] = m === d ? f : f + (a - m) * (q - f) / (d - m); l[c](h, 0, A, g) } }, constructPostScript: function (b, e, k) { k = e.get("Domain"); e = e.get("Range"); k || a("No domain."); e || a("No range."); b = new X(b); b = (new N(b)).parse(); return [4, k, e, b] }, constructPostScriptFromIR: function (a) { var e = a[1], k = a[2]; a = a[3]; var l = (new K).compile(a, e, k); if (l) return new Function("src", "srcOffset", "dest", "destOffset", l); b("Unable to compile PS function"); var u = k.length >> 1, h = e.length >> 1, c = new M(a), C = Object.create(null), F = 8192, n = new Float32Array(h); return function (a, b, e, d) { var f, l, w = ""; for (f = 0; f < h; f++) l = a[b + f], n[f] = l, w += l + "_"; f = C[w]; if (void 0 !== f) e.set(f, d); else { a = new Float32Array(u); b = c.execute(n); var v = b.length - u; for (f = 0; f < u; f++) { l = b[v + f]; var G = k[2 * f]; l < G ? l = G : (G = k[2 * f + 1], l > G && (l = G)); a[f] = l } 0 < F && (F--, C[w] = a); e.set(a, d) } } } } }(), G = function () { function b(a) { this.stack = a ? Array.prototype.slice.call(a, 0) : [] } b.prototype = { push: function (b) { 100 <= this.stack.length && a("PostScript function stack overflow."); this.stack.push(b) }, pop: function () { 0 >= this.stack.length && a("PostScript function stack underflow."); return this.stack.pop() }, copy: function (b) { 100 <= this.stack.length + b && a("PostScript function stack overflow."); var e = this.stack, k = e.length - b; for (--b; 0 <= b; b--, k++) e.push(e[k]) }, index: function (a) { this.push(this.stack[this.stack.length - a - 1]) }, roll: function (a, b) { var e = this.stack, k = e.length - a, h = e.length - 1, c = k + (b - Math.floor(b / a) * a), l, u, n; l = k; for (u = h; l < u; l++, u--) n = e[l], e[l] = e[u], e[u] = n; l = k; for (u = c - 1; l < u; l++, u--) n = e[l], e[l] = e[u], e[u] = n; l = c; for (u = h; l < u; l++, u--) n = e[l], e[l] = e[u], e[u] = n } }; return b }(), M = function () { function b(a) { this.operators = a } b.prototype = { execute: function (b) { b = new G(b); for (var e = 0, k = this.operators, l = k.length, h, c; e < l;) if (h = k[e++], "number" === typeof h) b.push(h); else switch (h) { case "jz": c = b.pop(); (h = b.pop()) || (e = c); break; case "j": e = h = b.pop(); break; case "abs": h = b.pop(); b.push(Math.abs(h)); break; case "add": c = b.pop(); h = b.pop(); b.push(h + c); break; case "and": c = b.pop(); h = b.pop(); Q(h) && Q(c) ? b.push(h && c) : b.push(h & c); break; case "atan": h = b.pop(); b.push(Math.atan(h)); break; case "bitshift": c = b.pop(); h = b.pop(); 0 < h ? b.push(h << c) : b.push(h >> c); break; case "ceiling": h = b.pop(); b.push(Math.ceil(h)); break; case "copy": h = b.pop(); b.copy(h); break; case "cos": h = b.pop(); b.push(Math.cos(h)); break; case "cvi": h = b.pop() | 0; b.push(h); break; case "cvr": break; case "div": c = b.pop(); h = b.pop(); b.push(h / c); break; case "dup": b.copy(1); break; case "eq": c = b.pop(); h = b.pop(); b.push(h === c); break; case "exch": b.roll(2, 1); break; case "exp": c = b.pop(); h = b.pop(); b.push(Math.pow(h, c)); break; case "false": b.push(!1); break; case "floor": h = b.pop(); b.push(Math.floor(h)); break; case "ge": c = b.pop(); h = b.pop(); b.push(h >= c); break; case "gt": c = b.pop(); h = b.pop(); b.push(h > c); break; case "idiv": c = b.pop(); h = b.pop(); b.push(h / c | 0); break; case "index": h = b.pop(); b.index(h); break; case "le": c = b.pop(); h = b.pop(); b.push(h <= c); break; case "ln": h = b.pop(); b.push(Math.log(h)); break; case "log": h = b.pop(); b.push(Math.log(h) / Math.LN10); break; case "lt": c = b.pop(); h = b.pop(); b.push(h < c); break; case "mod": c = b.pop(); h = b.pop(); b.push(h % c); break; case "mul": c = b.pop(); h = b.pop(); b.push(h * c); break; case "ne": c = b.pop(); h = b.pop(); b.push(h !== c); break; case "neg": h = b.pop(); b.push(-h); break; case "not": h = b.pop(); Q(h) ? b.push(!h) : b.push(~h); break; case "or": c = b.pop(); h = b.pop(); Q(h) && Q(c) ? b.push(h || c) : b.push(h | c); break; case "pop": b.pop(); break; case "roll": c = b.pop(); h = b.pop(); b.roll(h, c); break; case "round": h = b.pop(); b.push(Math.round(h)); break; case "sin": h = b.pop(); b.push(Math.sin(h)); break; case "sqrt": h = b.pop(); b.push(Math.sqrt(h)); break; case "sub": c = b.pop(); h = b.pop(); b.push(h - c); break; case "true": b.push(!0); break; case "truncate": h = b.pop(); h = 0 > h ? Math.ceil(h) : Math.floor(h); b.push(h); break; case "xor": c = b.pop(); h = b.pop(); Q(h) && Q(c) ? b.push(h !== c) : b.push(h ^ c); break; default: a("Unknown operator " + h) } return b.stack } }; return b }(), K = function () { function a(b) { this.type = b } function b(a, f, c) { this.type = "args"; this.index = a; this.min = f; this.max = c } function e(a) { this.type = "literal"; this.max = this.min = this.number = a } function k(a, b, c, g, e) { this.type = "binary"; this.op = a; this.arg1 = b; this.arg2 = c; this.min = g; this.max = e } function l(a, b) { this.type = "max"; this.arg = a; this.min = a.min; this.max = b } function h(a, b, c) { this.type = "var"; this.index = a; this.min = b; this.max = c } function c(a, b) { this.type = "definition"; this.variable = a; this.arg = b } function u() { this.parts = [] } function F(a, b) { return "literal" === b.type && 0 === b.number ? a : "literal" === a.type && 0 === a.number ? b : "literal" === b.type && "literal" === a.type ? new e(a.number + b.number) : new k("+", a, b, a.min + b.min, a.max + b.max) } function n(a, b) { if ("literal" === b.type) { if (0 === b.number) return new e(0); if (1 === b.number) return a; if ("literal" === a.type) return new e(a.number * b.number) } if ("literal" === a.type) { if (0 === a.number) return new e(0); if (1 === a.number) return b } return new k("*", a, b, Math.min(a.min * b.min, a.min * b.max, a.max * b.min, a.max * b.max), Math.max(a.min * b.min, a.min * b.max, a.max * b.min, a.max * b.max)) } function A(a, b) { if ("literal" === b.type) { if (0 === b.number) return a; if ("literal" === a.type) return new e(a.number - b.number) } return "binary" === b.type && "-" === b.op && "literal" === a.type && 1 === a.number && "literal" === b.arg1.type && 1 === b.arg1.number ? b.arg2 : new k("-", a, b, a.min - b.max, a.max - b.min) } function g(a, b) { return a.min >= b ? new e(b) : a.max <= b ? a : new l(a, b) } function m() { } a.prototype.visit = function (a) { throw Error("abstract method"); }; b.prototype = Object.create(a.prototype); b.prototype.visit = function (a) { a.visitArgument(this) }; e.prototype = Object.create(a.prototype); e.prototype.visit = function (a) { a.visitLiteral(this) }; k.prototype = Object.create(a.prototype); k.prototype.visit = function (a) { a.visitBinaryOperation(this) }; l.prototype = Object.create(a.prototype); l.prototype.visit = function (a) { a.visitMin(this) }; h.prototype = Object.create(a.prototype); h.prototype.visit = function (a) { a.visitVariable(this) }; c.prototype = Object.create(a.prototype); c.prototype.visit = function (a) { a.visitVariableDefinition(this) }; u.prototype = { visitArgument: function (a) { this.parts.push("Math.max(", a.min, ", Math.min(", a.max, ", src[srcOffset + ", a.index, "]))") }, visitVariable: function (a) { this.parts.push("v", a.index) }, visitLiteral: function (a) { this.parts.push(a.number) }, visitBinaryOperation: function (a) { this.parts.push("("); a.arg1.visit(this); this.parts.push(" ", a.op, " "); a.arg2.visit(this); this.parts.push(")") }, visitVariableDefinition: function (a) { this.parts.push("var "); a.variable.visit(this); this.parts.push(" = "); a.arg.visit(this); this.parts.push(";") }, visitMin: function (a) { this.parts.push("Math.min("); a.arg.visit(this); this.parts.push(", ", a.max, ")") }, toString: function () { return this.parts.join("") } }; m.prototype = { compile: function (a, f, k) { var m = [], l, H = [], G = f.length >> 1, B = k.length >> 1, E = 0, t, x; for (l = 0; l < G; l++) m.push(new b(l, f[2 * l], f[2 * l + 1])); l = 0; for (f = a.length; l < f; l++) if (G = a[l], "number" === typeof G) m.push(new e(G)); else switch (G) { case "add": if (2 > m.length) return null; t = m.pop(); G = m.pop(); m.push(F(G, t)); break; case "cvr": if (1 > m.length) return null; break; case "mul": if (2 > m.length) return null; t = m.pop(); G = m.pop(); m.push(n(G, t)); break; case "sub": if (2 > m.length) return null; t = m.pop(); G = m.pop(); m.push(A(G, t)); break; case "exch": if (2 > m.length) return null; t = m.pop(); G = m.pop(); m.push(t, G); break; case "pop": if (1 > m.length) return null; m.pop(); break; case "index": if (1 > m.length) return null; G = m.pop(); if ("literal" !== G.type) return null; G = G.number; if (0 > G || (G | 0) !== G || m.length < G) return null; t = m[m.length - G - 1]; if ("literal" === t.type || "var" === t.type) { m.push(t); break } x = new h(E++, t.min, t.max); m[m.length - G - 1] = x; m.push(x); H.push(new c(x, t)); break; case "dup": if (1 > m.length) return null; if ("number" === typeof a[l + 1] && "gt" === a[l + 2] && a[l + 3] === l + 7 && "jz" === a[l + 4] && "pop" === a[l + 5] && a[l + 6] === a[l + 1]) { G = m.pop(); m.push(g(G, a[l + 1])); l += 6; break } t = m[m.length - 1]; if ("literal" === t.type || "var" === t.type) { m.push(t); break } x = new h(E++, t.min, t.max); m[m.length - 1] = x; m.push(x); H.push(new c(x, t)); break; case "roll": if (2 > m.length) return null; t = m.pop(); G = m.pop(); if ("literal" !== t.type || "literal" !== G.type) return null; t = t.number; G = G.number; if (0 >= G || (G | 0) !== G || (t | 0) !== t || m.length < G) return null; t = (t % G + G) % G; if (0 === t) break; Array.prototype.push.apply(m, m.splice(m.length - G, G - t)); break; default: return null } if (m.length !== B) return null; var J = []; H.forEach(function (a) { var b = new u; a.visit(b); J.push(b.toString()) }); m.forEach(function (a, b) { var d = new u; a.visit(d); var f = k[2 * b], c = k[2 * b + 1], d = [d.toString()]; f > a.min && (d.unshift("Math.max(", f, ", "), d.push(")")); c < a.max && (d.unshift("Math.min(", c, ", "), d.push(")")); d.unshift("dest[destOffset + ", b, "] = "); d.push(";"); J.push(d.join("")) }); return J.join("\n") } }; return m }(); e.isPDFFunction = function (a) { if ("object" !== typeof a) return !1; if (!k(a)) if (I(a)) a = a.dict; else return !1; return a.has("FunctionType") }; e.PDFFunction = u; e.PostScriptEvaluator = M; e.PostScriptCompiler = K }); (function (e, l) { l(e.pdfjsCoreColorSpace = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreFunction) })(this, function (e, l, R, O) { var a = l.error, b = l.info, L = l.isArray, Q = l.isString, k = l.shadow, I = l.warn, X = R.isDict, N = R.isName, u = R.isStream, G = O.PDFFunction, M = function () { function b() { a("should not call ColorSpace constructor") } b.prototype = { getRgb: function (a, b) { var c = new Uint8Array(3); this.getRgbItem(a, b, c, 0); return c }, getRgbItem: function (b, c, g, e) { a("Should not call ColorSpace.getRgbItem") }, getRgbBuffer: function (b, c, g, e, d, f, h) { a("Should not call ColorSpace.getRgbBuffer") }, getOutputLength: function (b, c) { a("Should not call ColorSpace.getOutputLength") }, isPassthrough: function (a) { return !1 }, fillRgb: function (a, b, c, e, d, f, h, k, l) { var u = b * c, r = null, F = 1 << h, E = c !== d || b !== e, t; if (this.isPassthrough(h)) r = k; else if (1 === this.numComps && u > F && "DeviceGray" !== this.name && "DeviceRGB" !== this.name) { var x = 8 >= h ? new Uint8Array(F) : new Uint16Array(F); for (t = 0; t < F; t++) x[t] = t; var v = new Uint8Array(3 * F); this.getRgbBuffer(x, 0, F, v, 0, h, 0); if (E) for (r = new Uint8Array(3 * u), t = F = 0; t < u; ++t) x = 3 * k[t], r[F++] = v[x], r[F++] = v[x + 1], r[F++] = v[x + 2]; else for (t = h = 0; t < u; ++t) x = 3 * k[t], a[h++] = v[x], a[h++] = v[x + 1], a[h++] = v[x + 2], h += l } else E ? (r = new Uint8Array(3 * u), this.getRgbBuffer(k, 0, u, r, 0, h, 0)) : this.getRgbBuffer(k, 0, e * f, a, 0, h, l); if (r) if (E) { l = 1 !== l ? 0 : l; u = b / e; c /= d; t = 0; f = new Uint16Array(e); k = 3 * b; for (b = 0; b < e; b++) f[b] = 3 * Math.floor(b * u); for (b = 0; b < d; b++) for (E = Math.floor(b * c) * k, u = 0; u < e; u++) v = E + f[u], a[t++] = r[v++], a[t++] = r[v++], a[t++] = r[v++], t += l } else for (t = h = F = 0, e *= f; t < e; t++) a[h++] = r[F++], a[h++] = r[F++], a[h++] = r[F++], h += l }, usesZeroToOneRange: !0 }; b.parse = function (a, c, g) { a = b.parseToIR(a, c, g); return a instanceof K ? a : b.fromIR(a) }; b.fromIR = function (e) { var k = L(e) ? e[0] : e, g, m; switch (k) { case "DeviceGrayCS": return this.singletons.gray; case "DeviceRgbCS": return this.singletons.rgb; case "DeviceCmykCS": return this.singletons.cmyk; case "CalGrayCS": return k = e[1], g = e[2], m = e[3], new h(k, g, m); case "CalRGBCS": return k = e[1], g = e[2], m = e[3], new c(k, g, m, e[4]); case "PatternCS": return (e = e[1]) && (e = b.fromIR(e)), new J(e); case "IndexedCS": return k = e[2], g = e[3], new v(b.fromIR(e[1]), k, g); case "AlternateCS": return k = e[3], new K(e[1], b.fromIR(e[2]), G.fromIR(k)); case "LabCS": return k = e[1], g = e[2], new C(k, g, e[3]); default: a("Unknown name " + k) } return null }; b.parseToIR = function (c, e, g) { if (N(c)) { var h = g.get("ColorSpace"); X(h) && (h = h.get(c.name)) && (c = h) } c = e.fetchIfRef(c); if (N(c)) switch (this.mode = h = c.name, h) { case "DeviceGray": case "G": return "DeviceGrayCS"; case "DeviceRGB": case "RGB": return "DeviceRgbCS"; case "DeviceCMYK": case "CMYK": return "DeviceCmykCS"; case "Pattern": return ["PatternCS", null]; default: a("unrecognized colorspace " + h) } else if (L(c)) { this.mode = h = e.fetchIfRef(c[0]).name; var d; switch (h) { case "DeviceGray": case "G": return "DeviceGrayCS"; case "DeviceRGB": case "RGB": return "DeviceRgbCS"; case "DeviceCMYK": case "CMYK": return "DeviceCmykCS"; case "CalGray": return h = e.fetchIfRef(c[1]), e = h.get("WhitePoint"), c = h.get("BlackPoint"), g = h.get("Gamma"), ["CalGrayCS", e, c, g]; case "CalRGB": return h = e.fetchIfRef(c[1]), e = h.get("WhitePoint"), c = h.get("BlackPoint"), g = h.get("Gamma"), h = h.get("Matrix"), ["CalRGBCS", e, c, g, h]; case "ICCBased": c = e.fetchIfRef(c[1]).dict; h = c.get("N"); if (d = c.get("Alternate")) { e = b.parseToIR(d, e, g); if (b.fromIR(e).numComps === h) return e; I("ICCBased color space: Ignoring incorrect /Alternate entry.") } if (1 === h) return "DeviceGrayCS"; if (3 === h) return "DeviceRgbCS"; if (4 === h) return "DeviceCmykCS"; break; case "Pattern": return (c = c[1] || null) && (c = b.parseToIR(c, e, g)), ["PatternCS", c]; case "Indexed": case "I": return g = b.parseToIR(c[1], e, g), h = e.fetchIfRef(c[2]) + 1, e = e.fetchIfRef(c[3]), u(e) && (e = e.getBytes()), ["IndexedCS", g, h, e]; case "Separation": case "DeviceN": return d = e.fetchIfRef(c[1]), h = 1, N(d) ? h = 1 : L(d) && (h = d.length), d = b.parseToIR(c[2], e, g), e = G.getIR(e, e.fetchIfRef(c[3])), ["AlternateCS", h, d, e]; case "Lab": return h = e.fetchIfRef(c[1]), e = h.get("WhitePoint"), c = h.get("BlackPoint"), g = h.get("Range"), ["LabCS", e, c, g]; default: a('unimplemented color space object "' + h + '"') } } else a('unrecognized color space object: "' + c + '"'); return null }; b.isDefaultDecode = function (a, b) { if (!L(a)) return !0; if (2 * b !== a.length) return I("The decode map is not the correct length"), !0; for (var c = 0, e = a.length; c < e; c += 2) if (0 !== a[c] || 1 !== a[c + 1]) return !1; return !0 }; b.singletons = { get gray() { return k(this, "gray", new r) }, get rgb() { return k(this, "rgb", new P) }, get cmyk() { return k(this, "cmyk", new H) } }; return b }(), K = function () { function a(b, c, g) { this.name = "Alternate"; this.numComps = b; this.defaultColor = new Float32Array(b); for (var e = 0; e < b; ++e) this.defaultColor[e] = 1; this.base = c; this.tintFn = g; this.tmpBuf = new Float32Array(c.numComps) } a.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, e) { var d = this.tmpBuf; this.tintFn(a, b, d, 0); this.base.getRgbItem(d, 0, c, e) }, getRgbBuffer: function (a, b, c, e, d, f, h) { var k = this.tintFn, l = this.base; f = 1 / ((1 << f) - 1); var u = l.numComps, r = l.usesZeroToOneRange, F = (l.isPassthrough(8) || !r) && 0 === h, v = F ? d : 0, t = F ? e : new Uint8Array(u * c), x = this.numComps, C = new Float32Array(x), z = new Float32Array(u), y; if (r) for (r = 0; r < c; r++) { for (y = 0; y < x; y++) C[y] = a[b++] * f; k(C, 0, z, 0); for (y = 0; y < u; y++) t[v++] = 255 * z[y] } else for (r = 0; r < c; r++) { for (y = 0; y < x; y++) C[y] = a[b++] * f; k(C, 0, z, 0); l.getRgbItem(z, 0, t, v); v += u } F || l.getRgbBuffer(t, 0, c, e, d, 8, h) }, getOutputLength: function (a, b) { return this.base.getOutputLength(a * this.base.numComps / this.numComps, b) }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return a }(), J = function () { function a(b) { this.name = "Pattern"; this.base = b } a.prototype = {}; return a }(), v = function () { function b(c, e, g) { this.name = "Indexed"; this.numComps = 1; this.defaultColor = new Uint8Array([0]); this.base = c; this.highVal = e; c = c.numComps * e; var h; if (u(g)) h = new Uint8Array(c), g = g.getBytes(c), h.set(g); else if (Q(g)) for (h = new Uint8Array(c), e = 0; e < c; ++e) h[e] = g.charCodeAt(e); else g instanceof Uint8Array || g instanceof Array ? h = g : a("Unrecognized lookup table: " + g); this.lookup = h } b.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, e) { this.base.getRgbItem(this.lookup, a[b] * this.base.numComps, c, e) }, getRgbBuffer: function (a, b, c, e, d, f, h) { f = this.base; for (var k = f.numComps, l = f.getOutputLength(k, h), u = this.lookup, r = 0; r < c; ++r) { var F = a[b++] * k; f.getRgbBuffer(u, F, 1, e, d, 8, h); d += l } }, getOutputLength: function (a, b) { return this.base.getOutputLength(a * this.base.numComps, b) }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return !0 }, usesZeroToOneRange: !0 }; return b }(), r = function () { function a() { this.name = "DeviceGray"; this.numComps = 1; this.defaultColor = new Float32Array([0]) } a.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, e) { a = 255 * a[b] | 0; c[e] = c[e + 1] = c[e + 2] = 0 > a ? 0 : 255 < a ? 255 : a }, getRgbBuffer: function (a, b, c, e, d, f, h) { f = 255 / ((1 << f) - 1); for (var k = 0; k < c; ++k) { var l = f * a[b++] | 0; e[d++] = l; e[d++] = l; e[d++] = l; d += h } }, getOutputLength: function (a, b) { return a * (3 + b) }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return a }(), P = function () { function a() { this.name = "DeviceRGB"; this.numComps = 3; this.defaultColor = new Float32Array([0, 0, 0]) } a.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, e) { var d = 255 * a[b] | 0, f = 255 * a[b + 1] | 0; a = 255 * a[b + 2] | 0; c[e] = 0 > d ? 0 : 255 < d ? 255 : d; c[e + 1] = 0 > f ? 0 : 255 < f ? 255 : f; c[e + 2] = 0 > a ? 0 : 255 < a ? 255 : a }, getRgbBuffer: function (a, b, c, e, d, f, h) { if (8 === f && 0 === h) e.set(a.subarray(b, b + 3 * c), d); else { f = 255 / ((1 << f) - 1); for (var k = 0; k < c; ++k) e[d++] = f * a[b++] | 0, e[d++] = f * a[b++] | 0, e[d++] = f * a[b++] | 0, d += h } }, getOutputLength: function (a, b) { return a * (3 + b) / 3 | 0 }, isPassthrough: function (a) { return 8 === a }, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return a }(), H = function () { function a(b, c, e, d, f) { var h = b[c + 0] * e, k = b[c + 1] * e, n = b[c + 2] * e; e *= b[c + 3]; b = h * (-4.387332384609988 * h + 54.48615194189176 * k + 18.82290502165302 * n + 212.25662451639585 * e + -285.2331026137004) + k * (1.7149763477362134 * k - 5.6096736904047315 * n + -17.873870861415444 * e - 5.497006427196366) + n * (-2.5217340131683033 * n - 21.248923337353073 * e + 17.5119270841813) + e * (-21.86122147463605 * e - 189.48180835922747) + 255 | 0; c = h * (8.841041422036149 * h + 60.118027045597366 * k + 6.871425592049007 * n + 31.159100130055922 * e + -79.2970844816548) + k * (-15.310361306967817 * k + 17.575251261109482 * n + 131.35250912493976 * e - 190.9453302588951) + n * (4.444339102852739 * n + 9.8632861493405 * e - 24.86741582555878) + e * (-20.737325471181034 * e - 187.80453709719578) + 255 | 0; h = h * (.8842522430003296 * h + 8.078677503112928 * k + 30.89978309703729 * n - .23883238689178934 * e + -14.183576799673286) + k * (10.49593273432072 * k + 63.02378494754052 * n + 50.606957656360734 * e - 112.23884253719248) + n * (.03296041114873217 * n + 115.60384449646641 * e + -193.58209356861505) + e * (-22.33816807309886 * e - 180.12613974708367) + 255 | 0; d[f] = 255 < b ? 255 : 0 > b ? 0 : b; d[f + 1] = 255 < c ? 255 : 0 > c ? 0 : c; d[f + 2] = 255 < h ? 255 : 0 > h ? 0 : h } function b() { this.name = "DeviceCMYK"; this.numComps = 4; this.defaultColor = new Float32Array([0, 0, 0, 1]) } b.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (b, c, e, d) { a(b, c, 1, e, d) }, getRgbBuffer: function (b, c, e, d, f, h, k) { h = 1 / ((1 << h) - 1); for (var n = 0; n < e; n++) a(b, c, h, d, f), c += 4, f += 3 + k }, getOutputLength: function (a, b) { return a / 4 * (3 + b) | 0 }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return b }(), h = function () { function c(e, g, h) { this.name = "CalGray"; this.numComps = 1; this.defaultColor = new Float32Array([0]); e || a("WhitePoint missing - required for color space CalGray"); g = g || [0, 0, 0]; this.XW = e[0]; this.YW = e[1]; this.ZW = e[2]; this.XB = g[0]; this.YB = g[1]; this.ZB = g[2]; this.G = h || 1; (0 > this.XW || 0 > this.ZW || 1 !== this.YW) && a("Invalid WhitePoint components for " + this.name + ", no fallback available"); if (0 > this.XB || 0 > this.YB || 0 > this.ZB) b("Invalid BlackPoint for " + this.name + ", falling back to default"), this.XB = this.YB = this.ZB = 0; 0 === this.XB && 0 === this.YB && 0 === this.ZB || I(this.name + ", BlackPoint: XB: " + this.XB + ", YB: " + this.YB + ", ZB: " + this.ZB + ", only default values are supported."); 1 > this.G && (b("Invalid Gamma: " + this.G + " for " + this.name + ", falling back to default"), this.G = 1) } function e(a, b, c, d, f, h) { a = Math.max(295.8 * Math.pow(a.YW * Math.pow(b[c] * h, a.G), .3333333333333333) - 40.8, 0) | 0; d[f] = a; d[f + 1] = a; d[f + 2] = a } c.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, d) { e(this, a, b, c, d, 1) }, getRgbBuffer: function (a, b, c, d, f, h, k) { h = 1 / ((1 << h) - 1); for (var l = 0; l < c; ++l) e(this, a, b, d, f, h), b += 1, f += 3 + k }, getOutputLength: function (a, b) { return a * (3 + b) }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return c }(), c = function () { function c(d, f, e, g) { this.name = "CalRGB"; this.numComps = 3; this.defaultColor = new Float32Array(3); d || a("WhitePoint missing - required for color space CalRGB"); f = f || new Float32Array(3); e = e || new Float32Array([1, 1, 1]); g = g || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); var h = d[0], k = d[1], m = d[2]; this.whitePoint = d; d = f[0]; var n = f[1], l = f[2]; this.blackPoint = f; this.GR = e[0]; this.GG = e[1]; this.GB = e[2]; this.MXA = g[0]; this.MYA = g[1]; this.MZA = g[2]; this.MXB = g[3]; this.MYB = g[4]; this.MZB = g[5]; this.MXC = g[6]; this.MYC = g[7]; this.MZC = g[8]; (0 > h || 0 > m || 1 !== k) && a("Invalid WhitePoint components for " + this.name + ", no fallback available"); if (0 > d || 0 > n || 0 > l) b("Invalid BlackPoint for " + this.name + " [" + d + ", " + n + ", " + l + "], falling back to default"), this.blackPoint = new Float32Array(3); if (0 > this.GR || 0 > this.GG || 0 > this.GB) b("Invalid Gamma [" + this.GR + ", " + this.GG + ", " + this.GB + "] for " + this.name + ", falling back to default"), this.GR = this.GG = this.GB = 1; if (0 > this.MXA || 0 > this.MYA || 0 > this.MZA || 0 > this.MXB || 0 > this.MYB || 0 > this.MZB || 0 > this.MXC || 0 > this.MYC || 0 > this.MZC) b("Invalid Matrix for " + this.name + " [" + this.MXA + ", " + this.MYA + ", " + this.MZA + this.MXB + ", " + this.MYB + ", " + this.MZB + this.MXC + ", " + this.MYC + ", " + this.MZC + "], falling back to default"), this.MXA = this.MYB = this.MZC = 1, this.MXB = this.MYA = this.MZA = this.MXC = this.MYC = this.MZB = 0 } function e(a, b, c) { c[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; c[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; c[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2] } function h(a) { return .0031308 >= a ? Math.max(0, Math.min(1, 12.92 * a)) : Math.max(0, Math.min(1, 1.055 * Math.pow(a, 1 / 2.4) - .055)) } function g(a) { return 0 > a ? -g(-a) : 8 < a ? Math.pow((a + 16) / 116, 3) : a * B } function k(a, b, c, m, z, y) { var p = Math.pow(Math.max(0, Math.min(1, b[c] * y)), a.GR), D = Math.pow(Math.max(0, Math.min(1, b[c + 1] * y)), a.GG); c = Math.pow(Math.max(0, Math.min(1, b[c + 2] * y)), a.GB); y = a.MYA * p + a.MYB * D + a.MYC * c; var F = a.MZA * p + a.MZB * D + a.MZC * c; b = v; b[0] = a.MXA * p + a.MXB * D + a.MXC * c; b[1] = y; b[2] = F; p = C; D = a.whitePoint; 1 === D[0] && 1 === D[2] ? (p[0] = b[0], p[1] = b[1], p[2] = b[2]) : (e(d, b, p), b = r, b[0] = 1 * p[0] / D[0], b[1] = 1 * p[1] / D[1], b[2] = 1 * p[2] / D[2], e(f, b, p)); D = v; c = a.blackPoint; 0 === c[0] && 0 === c[1] && 0 === c[2] ? (D[0] = p[0], D[1] = p[1], D[2] = p[2]) : (a = g(0), y = g(c[0]), b = g(c[1]), c = g(c[2]), y = (1 - a) / (1 - y), b = (1 - a) / (1 - b), a = (1 - a) / (1 - c), D[0] = p[0] * y + (1 - y), D[1] = p[1] * b + (1 - b), D[2] = p[2] * a + (1 - a)); a = C; p = u; e(d, D, a); D = r; D[0] = .95047 * a[0] / p[0]; D[1] = 1 * a[1] / p[1]; D[2] = 1.08883 * a[2] / p[2]; e(f, D, a); p = v; e(l, a, p); a = h(p[0]); D = h(p[1]); p = h(p[2]); m[z] = Math.round(255 * a); m[z + 1] = Math.round(255 * D); m[z + 2] = Math.round(255 * p) } var d = new Float32Array([.8951, .2664, -.1614, -.7502, 1.7135, .0367, .0389, -.0685, 1.0296]), f = new Float32Array([.9869929, -.1470543, .1599627, .4323053, .5183603, .0492912, -.0085287, .0400428, .9684867]), l = new Float32Array([3.2404542, -1.5371385, -.4985314, -.969266, 1.8760108, .041556, .0556434, -.2040259, 1.0572252]), u = new Float32Array([1, 1, 1]), r = new Float32Array(3), v = new Float32Array(3), C = new Float32Array(3), B = Math.pow(24 / 116, 3) / 8; c.prototype = { getRgb: function (a, b) { var c = new Uint8Array(3); this.getRgbItem(a, b, c, 0); return c }, getRgbItem: function (a, b, c, d) { k(this, a, b, c, d, 1) }, getRgbBuffer: function (a, b, c, d, f, e, g) { e = 1 / ((1 << e) - 1); for (var h = 0; h < c; ++h) k(this, a, b, d, f, e), b += 3, f += 3 + g }, getOutputLength: function (a, b) { return a * (3 + b) / 3 | 0 }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return M.isDefaultDecode(a, this.numComps) }, usesZeroToOneRange: !0 }; return c }(), C = function () { function c(e, h, d) { this.name = "Lab"; this.numComps = 3; this.defaultColor = new Float32Array([0, 0, 0]); e || a("WhitePoint missing - required for color space Lab"); h = h || [0, 0, 0]; d = d || [-100, 100, -100, 100]; this.XW = e[0]; this.YW = e[1]; this.ZW = e[2]; this.amin = d[0]; this.amax = d[1]; this.bmin = d[2]; this.bmax = d[3]; this.XB = h[0]; this.YB = h[1]; this.ZB = h[2]; (0 > this.XW || 0 > this.ZW || 1 !== this.YW) && a("Invalid WhitePoint components, no fallback available"); if (0 > this.XB || 0 > this.YB || 0 > this.ZB) b("Invalid BlackPoint, falling back to default"), this.XB = this.YB = this.ZB = 0; if (this.amin > this.amax || this.bmin > this.bmax) b("Invalid Range, falling back to defaults"), this.amin = -100, this.amax = 100, this.bmin = -100, this.bmax = 100 } function e(a) { return a >= 6 / 29 ? a * a * a : 108 / 841 * (a - 4 / 29) } function h(a, b, c, f, k, l) { var u = b[c], r = b[c + 1]; b = b[c + 2]; !1 !== f && (u = 0 + 100 * u / f, c = a.amin, r = c + r * (a.amax - c) / f, c = a.bmin, b = c + b * (a.bmax - c) / f); r = r > a.amax ? a.amax : r < a.amin ? a.amin : r; b = b > a.bmax ? a.bmax : b < a.bmin ? a.bmin : b; f = (u + 16) / 116; u = f - b / 200; r = a.XW * e(f + r / 500); f = a.YW * e(f); u = a.ZW * e(u); 1 > a.ZW ? (a = 3.1339 * r + -1.617 * f + -.4906 * u, b = -.9785 * r + 1.916 * f + .0333 * u, r = .072 * r + -.229 * f + 1.4057 * u) : (a = 3.2406 * r + -1.5372 * f + -.4986 * u, b = -.9689 * r + 1.8758 * f + .0415 * u, r = .0557 * r + -.204 * f + 1.057 * u); k[l] = 0 >= a ? 0 : 1 <= a ? 255 : 255 * Math.sqrt(a) | 0; k[l + 1] = 0 >= b ? 0 : 1 <= b ? 255 : 255 * Math.sqrt(b) | 0; k[l + 2] = 0 >= r ? 0 : 1 <= r ? 255 : 255 * Math.sqrt(r) | 0 } c.prototype = { getRgb: M.prototype.getRgb, getRgbItem: function (a, b, c, f) { h(this, a, b, !1, c, f) }, getRgbBuffer: function (a, b, c, f, e, k, l) { k = (1 << k) - 1; for (var n = 0; n < c; n++) h(this, a, b, k, f, e), b += 3, e += 3 + l }, getOutputLength: function (a, b) { return a * (3 + b) / 3 | 0 }, isPassthrough: M.prototype.isPassthrough, fillRgb: M.prototype.fillRgb, isDefaultDecode: function (a) { return !0 }, usesZeroToOneRange: !1 }; return c }(); e.ColorSpace = M }); (function (e, l) { l(e.pdfjsCoreImage = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreColorSpace, e.pdfjsCoreStream, e.pdfjsCoreJpx) })(this, function (e, l, R, O, a, b) { var L = l.ImageKind, Q = l.assert, k = l.error, I = l.info, X = l.isArray, N = l.warn, u = R.Name, G = R.isStream, M = O.ColorSpace, K = a.DecodeStream, J = a.JpegStream, v = b.JpxImage; l = function () { function a(b, c) { return c && c.canDecode(b) ? c.decode(b) : Promise.resolve(b) } function b(a, c, e, k, l, u) { var g = l * u; c = 8 >= c ? new Uint8Array(g) : 16 >= c ? new Uint16Array(g) : new Uint32Array(g); var m = e / l; k /= u; for (var d, f = 0, q, r = new Uint16Array(l), g = 0; g < l; g++) r[g] = Math.floor(g * m); for (g = 0; g < u; g++) for (d = Math.floor(g * k) * e, m = 0; m < l; m++) q = d + r[m], c[f++] = a[q]; return c } function e(a, b, l, r, n, A, g) { this.image = l; r = l.dict; if (r.has("Filter")) { var m = r.get("Filter").name; "JPXDecode" === m ? (m = new v, m.parseImageProperties(l.stream), l.stream.reset(), l.bitsPerComponent = m.bitsPerComponent, l.numComps = m.componentsCount) : "JBIG2Decode" === m && (l.bitsPerComponent = 1, l.numComps = 1) } this.width = r.get("Width", "W"); this.height = r.get("Height", "H"); (1 > this.width || 1 > this.height) && k("Invalid image width: " + this.width + " or height: " + this.height); this.interpolate = r.get("Interpolate", "I") || !1; this.imageMask = r.get("ImageMask", "IM") || !1; this.matte = r.get("Matte") || !1; m = l.bitsPerComponent; m || (m = r.get("BitsPerComponent", "BPC")) || (this.imageMask ? m = 1 : k("Bits per component missing in image: " + this.imageMask)); this.bpc = m; if (!this.imageMask) { var d = r.get("ColorSpace", "CS"); if (!d) switch (I("JPX images (which do not require color spaces)"), l.numComps) { case 1: d = u.get("DeviceGray"); break; case 3: d = u.get("DeviceRGB"); break; case 4: d = u.get("DeviceCMYK"); break; default: k("JPX images with " + this.numComps + " color components not supported.") } this.colorSpace = M.parse(d, a, b); this.numComps = this.colorSpace.numComps } this.decode = r.get("Decode", "D"); this.needsDecode = !1; if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode) || g && !M.isDefaultDecode(this.decode, 1))) for (this.needsDecode = !0, l = (1 << m) - 1, this.decodeCoefficients = [], this.decodeAddends = [], r = g = 0; g < this.decode.length; g += 2, ++r) m = this.decode[g], this.decodeCoefficients[r] = this.decode[g + 1] - m, this.decodeAddends[r] = l * m; n ? this.smask = new e(a, b, n, !1) : A && (G(A) ? A.dict.get("ImageMask", "IM") ? this.mask = new e(a, b, A, !1, null, null, !0) : N("Ignoring /Mask in image without /ImageMask.") : this.mask = A) } e.buildImage = function (b, c, k, l, n, u) { b = a(l, u); var g = l.dict.get("SMask"), m = l.dict.get("Mask"); g ? (l = a(g, u), u = Promise.resolve(null)) : (l = Promise.resolve(null), m ? G(m) ? u = a(m, u) : X(m) ? u = Promise.resolve(m) : (N("Unsupported mask format."), u = Promise.resolve(null)) : u = Promise.resolve(null)); return Promise.all([b, l, u]).then(function (a) { return new e(c, k, a[0], n, a[1], a[2]) }) }; e.createMask = function (a, b, e, k, l) { var u = (b + 7 >> 3) * e, g = a.byteLength; if (!k || l && u !== g) if (l) for (k = new Uint8Array(u), k.set(a), a = g; a < u; a++) k[a] = 255; else k = new Uint8Array(g), k.set(a); else k = a; if (l) for (a = 0; a < g; a++) k[a] = ~k[a]; return { data: k, width: b, height: e } }; e.prototype = { get drawWidth() { return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0) }, get drawHeight() { return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0) }, decodeBuffer: function (a) { var b = this.bpc, e = this.numComps, k = this.decodeAddends, l = this.decodeCoefficients, u = (1 << b) - 1, g; if (1 === b) for (b = 0, g = a.length; b < g; b++) a[b] = +!a[b]; else { var m = 0, b = 0; for (g = this.width * this.height; b < g; b++) for (var d = 0; d < e; d++) { var f = m, q = a[m], q = k[d] + q * l[d]; a[f] = 0 > q ? 0 : q > u ? u : q; m++ } } }, getComponents: function (a) { var b = this.bpc; if (8 === b) return a; var e = this.width, k = this.height, l = this.numComps, u = e * k * l, g = 0, m = 8 >= b ? new Uint8Array(u) : 16 >= b ? new Uint16Array(u) : new Uint32Array(u), e = e * l, d = (1 << b) - 1, l = 0, f; if (1 === b) for (u = 0; u < k; u++) { d = l + (e & -8); for (b = l + e; l < d;) f = a[g++], m[l] = f >> 7 & 1, m[l + 1] = f >> 6 & 1, m[l + 2] = f >> 5 & 1, m[l + 3] = f >> 4 & 1, m[l + 4] = f >> 3 & 1, m[l + 5] = f >> 2 & 1, m[l + 6] = f >> 1 & 1, m[l + 7] = f & 1, l += 8; if (l < b) for (f = a[g++], d = 128; l < b;) m[l++] = +!!(f & d), d >>= 1 } else for (l = f = k = 0; l < u; ++l) { 0 === l % e && (k = f = 0); for (; k < b;) f = f << 8 | a[g++], k += 8; var k = k - b, q = f >> k; m[l] = 0 > q ? 0 : q > d ? d : q; f &= (1 << k) - 1 } return m }, fillOpacity: function (a, c, l, u, n) { var r = this.smask, g = this.mask, m, d, f; if (r) { if (n = r.width, d = r.height, m = new Uint8Array(n * d), r.fillGrayBuffer(m), n !== c || d !== l) m = b(m, r.bpc, n, d, c, l) } else if (g) if (g instanceof e) { n = g.width; d = g.height; m = new Uint8Array(n * d); g.numComps = 1; g.fillGrayBuffer(m); r = 0; for (f = n * d; r < f; ++r) m[r] = 255 - m[r]; if (n !== c || d !== l) m = b(m, g.bpc, n, d, c, l) } else if (X(g)) for (m = new Uint8Array(c * l), d = this.numComps, r = 0, f = c * l; r < f; ++r) { var q = 0, w = r * d; for (l = 0; l < d; ++l) { var v = n[w + l], G = 2 * l; if (v < g[G] || v > g[G + 1]) { q = 255; break } } m[r] = q } else k("Unknown mask format."); if (m) for (r = 0, l = 3, f = c * u; r < f; ++r, l += 4) a[l] = m[r]; else for (r = 0, l = 3, f = c * u; r < f; ++r, l += 4) a[l] = 255 }, undoPreblend: function (a, b, e) { var k = this.smask && this.smask.matte; if (k) { var l = this.colorSpace.getRgb(k, 0), k = l[0], u = l[1], l = l[2]; b = b * e * 4; var g, m, d; for (e = 0; e < b; e += 4) g = a[e + 3], 0 === g ? (a[e] = 255, a[e + 1] = 255, a[e + 2] = 255) : (d = 255 / g, g = (a[e] - k) * d + k, m = (a[e + 1] - u) * d + u, d = (a[e + 2] - l) * d + l, a[e] = 0 >= g ? 0 : 255 <= g ? 255 : g | 0, a[e + 1] = 0 >= m ? 0 : 255 <= m ? 255 : m | 0, a[e + 2] = 0 >= d ? 0 : 255 <= d ? 255 : d | 0) } }, createImageData: function (a) { var b = this.drawWidth, e = this.drawHeight, k = { width: b, height: e }, l = this.width, u = this.height, g = this.bpc, m = l * this.numComps * g + 7 >> 3, d; if (!a) { var f; "DeviceGray" === this.colorSpace.name && 1 === g ? f = L.GRAYSCALE_1BPP : "DeviceRGB" !== this.colorSpace.name || 8 !== g || this.needsDecode || (f = L.RGB_24BPP); if (f && !this.smask && !this.mask && b === l && e === u) { k.kind = f; d = this.getImageBytes(u * m); this.image instanceof K ? k.data = d : (b = new Uint8Array(d.length), b.set(d), k.data = b); if (this.needsDecode) for (Q(f === L.GRAYSCALE_1BPP), b = k.data, e = 0, l = b.length; e < l; e++) b[e] ^= 255; return k } if (this.image instanceof J && !this.smask && !this.mask && ("DeviceGray" === this.colorSpace.name || "DeviceRGB" === this.colorSpace.name || "DeviceCMYK" === this.colorSpace.name)) return k.kind = L.RGB_24BPP, k.data = this.getImageBytes(u * m, b, e, !0), k } d = this.getImageBytes(u * m); f = 0 | d.length / m * e / u; d = this.getComponents(d); a || this.smask || this.mask ? (k.kind = L.RGBA_32BPP, k.data = new Uint8Array(b * e * 4), a = 1, m = !0, this.fillOpacity(k.data, b, e, f, d)) : (k.kind = L.RGB_24BPP, k.data = new Uint8Array(b * e * 3), a = 0, m = !1); this.needsDecode && this.decodeBuffer(d); this.colorSpace.fillRgb(k.data, l, u, b, e, f, g, d, a); m && this.undoPreblend(k.data, b, f); return k }, fillGrayBuffer: function (a) { var b = this.numComps; 1 !== b && k("Reading gray scale from a color image: " + b); var e = this.width, l = this.height, n = this.bpc, b = this.getImageBytes(l * (e * b * n + 7 >> 3)), b = this.getComponents(b); if (1 === n) if (e *= l, this.needsDecode) for (n = 0; n < e; ++n) a[n] = b[n] - 1 & 255; else for (n = 0; n < e; ++n) a[n] = -b[n] & 255; else for (this.needsDecode && this.decodeBuffer(b), e *= l, l = 255 / ((1 << n) - 1), n = 0; n < e; ++n) a[n] = l * b[n] | 0 }, getImageBytes: function (a, b, e, k) { this.image.reset(); this.image.drawWidth = b || this.width; this.image.drawHeight = e || this.height; this.image.forceRGB = !!k; return this.image.getBytes(a) } }; return e }(); e.PDFImage = l }); (function (e, l) { l(e.pdfjsCoreObj = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreCrypto, e.pdfjsCoreParser, e.pdfjsCoreChunkedStream, e.pdfjsCoreColorSpace) })(this, function (e, l, R, O, a, b, L) { var Q = l.InvalidPDFException, k = l.MissingDataException, I = l.XRefParseException, X = l.assert, N = l.bytesToString, u = l.createPromiseCapability, G = l.error, M = l.info, K = l.isArray, J = l.isInt, v = l.isString, r = l.shadow, P = l.stringToPDFString, H = l.stringToUTF8String, h = l.warn, c = l.isValidUrl, C = l.Util, F = R.Ref, n = R.RefSet, A = R.RefSetCache, g = R.isName, m = R.isCmd, d = R.isDict, f = R.isRef, q = R.isStream, w = O.CipherTransformFactory, U = a.Lexer, V = a.Parser, T = b.ChunkedStream, B = L.ColorSpace; l = function () { function a(b, c, f) { this.pdfManager = b; this.xref = c; this.catDict = c.getCatalogObj(); this.fontCache = new A; X(d(this.catDict), "catalog object is not a dictionary"); this.pageFactory = f; this.pagePromises = [] } a.prototype = { get metadata() { var a = this.catDict.getRaw("Metadata"); if (!f(a)) return r(this, "metadata", null); var a = this.xref.fetch(a, !(this.xref.encrypt && this.xref.encrypt.encryptMetadata)), b; if (a && d(a.dict)) { var c = a.dict.get("Type"), e = a.dict.get("Subtype"); if (g(c) && g(e) && "Metadata" === c.name && "XML" === e.name) try { b = H(N(a.getBytes())) } catch (h) { M("Skipping invalid metadata.") } } return r(this, "metadata", b) }, get toplevelPagesDict() { var a = this.catDict.get("Pages"); X(d(a), "invalid top-level pages dictionary"); return r(this, "toplevelPagesDict", a) }, get documentOutline() { var a = null; try { a = this.readDocumentOutline() } catch (b) { if (b instanceof k) throw b; h("Unable to read document outline") } return r(this, "documentOutline", a) }, readDocumentOutline: function () { var a = this.catDict.get("Outlines"); if (!d(a)) return null; a = a.getRaw("First"); if (!f(a)) return null; var b = { items: [] }, e = [{ obj: a, parent: b }], h = new n; h.put(a); for (var k = this.xref, l = new Uint8Array(3) ; 0 < e.length;) { var m = e.shift(), q = k.fetchIfRef(m.obj); if (null !== q) { X(q.has("Title"), "Invalid outline item"); var t = q.get("A"), u = a = null; if (t) { var r = t.get("D"); r ? a = r : (t = t.get("URI"), v(t) && c(t, !1) && (u = t)) } else q.has("Dest") && (a = q.getRaw("Dest"), g(a) && (a = a.name)); var t = q.get("Title"), r = q.get("F") || 0, w = q.get("C"), z = l; !K(w) || 3 !== w.length || 0 === w[0] && 0 === w[1] && 0 === w[2] || (z = B.singletons.rgb.getRgb(w, 0)); u = { dest: a, url: u, title: P(t), color: z, count: q.get("Count"), bold: !!(r & 2), italic: !!(r & 1), items: [] }; m.parent.items.push(u); a = q.getRaw("First"); f(a) && !h.has(a) && (e.push({ obj: a, parent: u }), h.put(a)); a = q.getRaw("Next"); f(a) && !h.has(a) && (e.push({ obj: a, parent: m.parent }), h.put(a)) } } return 0 < b.items.length ? b.items : null }, get numPages() { var a = this.toplevelPagesDict.get("Count"); X(J(a), "page count in top level pages object is not an integer"); return r(this, "num", a) }, get destinations() { function a(b) { return d(b) ? b.get("D") : b } var b = this.xref, c = {}, f, e, g = this.catDict.get("Names"); g && g.has("Dests") ? f = g.getRaw("Dests") : this.catDict.has("Dests") && (e = this.catDict.get("Dests")); e && e.forEach(function (b, d) { d && (c[b] = a(d)) }); if (f) { var b = (new t(f, b)).getAll(), h; for (h in b) c[h] = a(b[h]) } return r(this, "destinations", c) }, getDestination: function (a) { function b(a) { return d(a) ? a.get("D") : a } var c = this.xref, f = null, e, g, h = this.catDict.get("Names"); h && h.has("Dests") ? e = h.getRaw("Dests") : this.catDict.has("Dests") && (g = this.catDict.get("Dests")); g && (g = g.get(a)) && (f = b(g)); e && (c = new t(e, c), f = b(c.get(a))); return f }, get pageLabels() { var a = null; try { a = this.readPageLabels() } catch (b) { if (b instanceof k) throw b; h("Unable to read page labels.") } return r(this, "pageLabels", a) }, readPageLabels: function () { var a = this.catDict.getRaw("PageLabels"); if (!a) return null; for (var b = Array(this.numPages), c = null, f = "", e = 1, a = (new x(a, this.xref)).getAll(), h = "", e = 1, k = 0, l = this.numPages; k < l; k++) { k in a && (e = a[k], X(d(e), "The PageLabel is not a dictionary."), c = e.get("Type"), X(!c || g(c) && "PageLabel" === c.name, "Invalid type in PageLabel dictionary."), c = e.get("S"), X(!c || g(c), "Invalid style in PageLabel dictionary."), c = c ? c.name : null, f = e.get("P") || "", X(v(f), "Invalid prefix in PageLabel dictionary."), e = e.get("St") || 1, X(J(e), "Invalid start in PageLabel dictionary.")); switch (c) { case "D": h = e; break; case "R": case "r": h = C.toRoman(e, "r" === c); break; case "A": case "a": for (var m = e - 1, h = String.fromCharCode(("a" === c ? 97 : 65) + m % 26), n = [], q = 0, m = m / 26 | 0; q <= m; q++) n.push(h); h = n.join(""); break; default: X(!c, 'Invalid style "' + c + '" in PageLabel dictionary.') } b[k] = f + h; h = ""; e++ } return b }, get attachments() { var a = this.xref, b = null, c, d = this.catDict.get("Names"); d && (c = d.getRaw("EmbeddedFiles")); if (c) { c = (new t(c, a)).getAll(); for (var f in c) d = new S(c[f], a), b || (b = Object.create(null)), b[P(f)] = d.serializable } return r(this, "attachments", b) }, get javaScript() { function a(b) { var c = b.get("S"); if (g(c) && "JavaScript" === c.name) { b = b.get("JS"); if (q(b)) b = N(b.getBytes()); else if (!v(b)) return; f.push(P(b)) } } var b = this.xref, c = this.catDict.get("Names"), f = []; if (c && c.has("JavaScript")) { var b = (new t(c.getRaw("JavaScript"), b)).getAll(), e; for (e in b) c = b[e], d(c) && a(c) } e = this.catDict.get("OpenAction"); d(e, "Action") && (b = e.get("S"), g(b) && "Named" === b.name ? (e = e.get("N"), g(e) && "Print" === e.name && f.push("print({});")) : a(e)); return r(this, "javaScript", f) }, cleanup: function () { var a = []; this.fontCache.forEach(function (b) { a.push(b) }); return Promise.all(a).then(function (a) { for (var b = 0, c = a.length; b < c; b++) delete a[b].dict.translated; this.fontCache.clear() }.bind(this)) }, getPage: function (a) { a in this.pagePromises || (this.pagePromises[a] = this.getPageDict(a).then(function (b) { return this.pageFactory.createPage(a, b[0], b[1], this.fontCache) }.bind(this))); return this.pagePromises[a] }, getPageDict: function (a) { function b() { for (; e.length;) { var l = e.pop(); if (f(l)) { h.fetchAsync(l).then(function (f) { d(f, "Page") || d(f) && !f.has("Kids") ? a === g ? c.resolve([f, l]) : (g++, b()) : (e.push(f), b()) }, c.reject); return } X(d(l), "page dictionary kid reference points to wrong type of object"); var m = l.get("Count"); 0 === m && (k = !0); if (g + m <= a) g += m; else { var n = l.get("Kids"); X(K(n), "page dictionary kids object is not an array"); if (k || m !== n.length) for (m = n.length - 1; 0 <= m; m--) e.push(n[m]); else e = [n[a - g]], g = a } } c.reject("Page index " + a + " not found.") } var c = u(), e = [this.catDict.getRaw("Pages")], g = 0, h = this.xref, k = !1; b(); return c.promise }, getPageIndex: function (a) { function b(a) { var c = 0, e; return d.fetchAsync(a).then(function (a) { if (!a) return null; e = a.getRaw("Parent"); return a.getAsync("Parent") }).then(function (a) { return a ? a.getAsync("Kids") : null }).then(function (b) { if (!b) return null; for (var g = [], h = !1, k = 0; k < b.length; k++) { var l = b[k]; X(f(l), "kids must be a ref"); if (l.num === a.num) { h = !0; break } g.push(d.fetchAsync(l).then(function (a) { a.has("Count") ? (a = a.get("Count"), c += a) : c++ })) } h || G("kid ref not found in parents kids"); return Promise.all(g).then(function () { return [c, e] }) }) } function c(a) { return b(a).then(function (a) { if (!a) return e; var b = a[1]; e += a[0]; return c(b) }) } var d = this.xref, e = 0; return c(a) } }; return a }(); R = function () { function a(b, c) { this.stream = b; this.entries = []; this.xrefstms = Object.create(null); this.cache = []; this.password = c; this.stats = { streamTypes: [], fontTypes: [] } } a.prototype = { setStartXRef: function (a) { this.startXRefQueue = [a] }, parse: function (a) { a ? (h("Indexing all PDF objects"), a = this.indexObjects()) : a = this.readXRef(); a.assignXref(this); this.trailer = a; var b = a.get("Encrypt"); if (b) { var c = a.get("ID"); this.encrypt = new w(b, c && c.length ? c[0] : "", this.password) } (this.root = a.get("Root")) || G("Invalid root reference") }, processXRefTable: function (a) { "tableState" in this || (this.tableState = { entryNum: 0, streamPos: a.lexer.stream.pos, parserBuf1: a.buf1, parserBuf2: a.buf2 }); var b = this.readXRefTable(a); m(b, "trailer") || G("Invalid XRef table: could not find trailer dictionary"); a = a.getObj(); !d(a) && a.dict && (a = a.dict); d(a) || G("Invalid XRef table: could not parse trailer dictionary"); delete this.tableState; return a }, readXRefTable: function (a) { var b = a.lexer.stream, c = this.tableState; b.pos = c.streamPos; a.buf1 = c.parserBuf1; a.buf2 = c.parserBuf2; for (var d; ;) { if (!("firstEntryNum" in c && "entryCount" in c)) { if (m(d = a.getObj(), "trailer")) break; c.firstEntryNum = d; c.entryCount = a.getObj() } d = c.firstEntryNum; var f = c.entryCount; J(d) && J(f) || G("Invalid XRef table: wrong types in subsection header"); for (var e = c.entryNum; e < f; e++) { c.streamPos = b.pos; c.entryNum = e; c.parserBuf1 = a.buf1; c.parserBuf2 = a.buf2; var g = {}; g.offset = a.getObj(); g.gen = a.getObj(); var h = a.getObj(); m(h, "f") ? g.free = !0 : m(h, "n") && (g.uncompressed = !0); J(g.offset) && J(g.gen) && (g.free || g.uncompressed) || G("Invalid entry in XRef subsection: " + d + ", " + f); 0 === e && g.free && 1 === d && (d = 0); this.entries[e + d] || (this.entries[e + d] = g) } c.entryNum = 0; c.streamPos = b.pos; c.parserBuf1 = a.buf1; c.parserBuf2 = a.buf2; delete c.firstEntryNum; delete c.entryCount } this.entries[0] && !this.entries[0].free && G("Invalid XRef table: unexpected first object"); return d }, processXRefStream: function (a) { if (!("streamState" in this)) { var b = a.dict, c = b.get("W"), d = b.get("Index"); d || (d = [0, b.get("Size")]); this.streamState = { entryRanges: d, byteWidths: c, entryNum: 0, streamPos: a.pos } } this.readXRefStream(a); delete this.streamState; return a.dict }, readXRefStream: function (a) { var b, c, d = this.streamState; a.pos = d.streamPos; b = d.byteWidths; for (var f = b[0], e = b[1], g = b[2], h = d.entryRanges; 0 < h.length;) { var k = h[0], l = h[1]; J(k) && J(l) || G("Invalid XRef range fields: " + k + ", " + l); J(f) && J(e) && J(g) || G("Invalid XRef entry fields length: " + k + ", " + l); for (b = d.entryNum; b < l; ++b) { d.entryNum = b; d.streamPos = a.pos; var m = 0, n = 0, q = 0; for (c = 0; c < f; ++c) m = m << 8 | a.getByte(); 0 === f && (m = 1); for (c = 0; c < e; ++c) n = n << 8 | a.getByte(); for (c = 0; c < g; ++c) q = q << 8 | a.getByte(); c = {}; c.offset = n; c.gen = q; switch (m) { case 0: c.free = !0; break; case 1: c.uncompressed = !0; break; case 2: break; default: G("Invalid XRef entry type: " + m) } this.entries[k + b] || (this.entries[k + b] = c) } d.entryNum = 0; d.streamPos = a.pos; h.splice(0, 2) } }, indexObjects: function () { function a(b, c) { for (var d = "", f = b[c]; 10 !== f && 13 !== f && 60 !== f && !(++c >= b.length) ;) d += String.fromCharCode(f), f = b[c]; return d } function b(a, c, d) { for (var f = d.length, e = a.length, g = 0; c < e;) { for (var h = 0; h < f && a[c + h] === d[h];)++h; if (h >= f) break; c++; g++ } return g } var c = /^(\d+)\s+(\d+)\s+obj\b/, f = new Uint8Array([116, 114, 97, 105, 108, 101, 114]), e = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), g = new Uint8Array([101, 110, 100, 111, 98, 106]), h = new Uint8Array([47, 88, 82, 101, 102]); this.entries.length = 0; var k = this.stream; k.pos = 0; for (var l = k.getBytes(), n = k.start, q = l.length, t = [], u = []; n < q;) { var r = l[n]; if (9 === r || 10 === r || 13 === r || 32 === r)++n; else if (37 === r) { do { ++n; if (n >= q) break; r = l[n] } while (10 !== r && 13 !== r) } else { var r = a(l, n), w; if (0 !== r.indexOf("xref") || 4 !== r.length && !/\s/.test(r[4])) if (w = c.exec(r)) { "undefined" === typeof this.entries[w[1]] && (this.entries[w[1]] = { offset: n - k.start, gen: w[2] | 0, uncompressed: !0 }); r = b(l, n, g) + 7; w = l.subarray(n, n + r); var z = b(w, 0, h); z < r && 64 > w[z + 5] && (u.push(n - k.start), this.xrefstms[n - k.start] = 1); n += r } else 0 !== r.indexOf("trailer") || 7 !== r.length && !/\s/.test(r[7]) ? n += r.length + 1 : (t.push(n), n += b(l, n, e)); else n += b(l, n, f), t.push(n), n += b(l, n, e) } } c = 0; for (f = u.length; c < f; ++c) this.startXRefQueue.push(u[c]), this.readXRef(!0); for (var v, c = 0, f = t.length; c < f; ++c) if (k.pos = t[c], u = new V(new U(k), !0, this), e = u.getObj(), m(e, "trailer") && d(v = u.getObj()) && v.has("ID")) return v; if (v) return v; throw new Q("Invalid PDF structure"); }, readXRef: function (a) { var b = this.stream; try { for (; this.startXRefQueue.length;) { b.pos = this.startXRefQueue[0] + b.start; var c = new V(new U(b), !0, this), d = c.getObj(), e; if (m(d, "xref")) { if (e = this.processXRefTable(c), this.topDict || (this.topDict = e), d = e.get("XRefStm"), J(d)) { var g = d; g in this.xrefstms || (this.xrefstms[g] = 1, this.startXRefQueue.push(g)) } } else J(d) ? (J(c.getObj()) && m(c.getObj(), "obj") && q(d = c.getObj()) || G("Invalid XRef stream"), e = this.processXRefStream(d), this.topDict || (this.topDict = e), e || G("Failed to read XRef stream")) : G("Invalid XRef stream header"); d = e.get("Prev"); J(d) ? this.startXRefQueue.push(d) : f(d) && this.startXRefQueue.push(d.num); this.startXRefQueue.shift() } return this.topDict } catch (h) { if (h instanceof k) throw h; M("(while reading XRef): " + h) } if (!a) throw new I; }, getEntry: function (a) { return (a = this.entries[a]) && !a.free && a.offset ? a : null }, fetchIfRef: function (a) { return f(a) ? this.fetch(a) : a }, fetch: function (a, b) { X(f(a), "ref object is not a reference"); var c = a.num; if (c in this.cache) return this.cache[c]; var e = this.getEntry(c); if (null === e) return this.cache[c] = null; e = e.uncompressed ? this.fetchUncompressed(a, e, b) : this.fetchCompressed(e, b); d(e) ? e.objId = a.toString() : q(e) && (e.dict.objId = a.toString()); return e }, fetchUncompressed: function (a, b, c) { var d = a.gen; a = a.num; b.gen !== d && G("inconsistent generation in XRef"); b = this.stream.makeSubStream(b.offset + this.stream.start); b = new V(new U(b), !0, this); var f = b.getObj(), e = b.getObj(), g = b.getObj(); J(f) && parseInt(f, 10) === a && J(e) && parseInt(e, 10) === d && m(g) || G("bad XRef entry"); if (!m(g, "obj")) { if (0 === g.cmd.indexOf("obj") && (a = parseInt(g.cmd.substring(3), 10), !isNaN(a))) return a; G("bad XRef entry") } b = this.encrypt && !c ? b.getObj(this.encrypt.createCipherTransform(a, d)) : b.getObj(); q(b) || (this.cache[a] = b); return b }, fetchCompressed: function (a, b) { var c = a.offset, d = this.fetch(new F(c, 0)); q(d) || G("bad ObjStm stream"); var f = d.dict.get("First"), e = d.dict.get("N"); J(f) && J(e) || G("invalid first and n parameters for ObjStm stream"); d = new V(new U(d), !1, this); d.allowStreams = !0; for (var g = [], h, k = [], f = 0; f < e; ++f) h = d.getObj(), J(h) || G("invalid object number in the ObjStm stream: " + h), k.push(h), h = d.getObj(), J(h) || G("invalid object offset in the ObjStm stream: " + h); for (f = 0; f < e; ++f) { g.push(d.getObj()); h = k[f]; var l = this.entries[h]; l && l.offset === c && l.gen === f && (this.cache[h] = g[f]) } a = g[a.gen]; void 0 === a && G("bad XRef entry for compressed object"); return a }, fetchIfRefAsync: function (a) { return f(a) ? this.fetchAsync(a) : Promise.resolve(a) }, fetchAsync: function (a, b) { var c = this.stream.manager, d = this; return new Promise(function ya(f, e) { try { f(d.fetch(a, b)) } catch (g) { g instanceof k ? c.requestRange(g.begin, g.end).then(function () { ya(f, e) }, e) : e(g) } }) }, getCatalogObj: function () { return this.root } }; return a }(); var E = function () { function a(b, c) { throw Error("Cannot initialize NameOrNumberTree."); } a.prototype = { getAll: function () { var a = Object.create(null); if (!this.root) return a; var b = this.xref, c = new n; c.put(this.root); for (var f = [this.root]; 0 < f.length;) { var e, g; e = b.fetchIfRef(f.shift()); if (d(e)) if (e.has("Kids")) { var h = e.get("Kids"); e = 0; for (g = h.length; e < g; e++) { var k = h[e]; X(!c.has(k), 'Duplicate entry in "' + this._type + '" tree.'); f.push(k); c.put(k) } } else if (h = e.get(this._type), K(h)) for (e = 0, g = h.length; e < g; e += 2) a[b.fetchIfRef(h[e])] = b.fetchIfRef(h[e + 1]) } return a }, get: function (a) { if (!this.root) return null; for (var b = this.xref, c = b.fetchIfRef(this.root), d = 0, f, e, g; c.has("Kids") ;) { if (10 < ++d) return h('Search depth limit reached for "' + this._type + '" tree.'), null; var k = c.get("Kids"); if (!K(k)) return null; f = 0; for (e = k.length - 1; f <= e;) { g = f + e >> 1; var l = b.fetchIfRef(k[g]).get("Limits"); if (a < b.fetchIfRef(l[0])) e = g - 1; else if (a > b.fetchIfRef(l[1])) f = g + 1; else { c = b.fetchIfRef(k[g]); break } } if (f > e) return null } c = c.get(this._type); if (K(c)) for (f = 0, e = c.length - 2; f <= e;) if (g = f + e & -2, d = b.fetchIfRef(c[g]), a < d) e = g - 2; else if (a > d) f = g + 2; else return b.fetchIfRef(c[g + 1]); return null } }; return a }(), t = function () { function a(b, c) { this.root = b; this.xref = c; this._type = "Names" } C.inherit(a, E, {}); return a }(), x = function () { function a(b, c) { this.root = b; this.xref = c; this._type = "Nums" } C.inherit(a, E, {}); return a }(), S = function () { function a(b, c) { b && d(b) && (this.xref = c, this.root = b, b.has("FS") && (this.fs = b.get("FS")), this.description = b.has("Desc") ? P(b.get("Desc")) : "", b.has("RF") && h("Related file specifications are not supported"), this.contentAvailable = !0, b.has("EF") || (this.contentAvailable = !1, h("Non-embedded file specifications are not supported"))) } function b(a) { return a.has("UF") ? a.get("UF") : a.has("F") ? a.get("F") : a.has("Unix") ? a.get("Unix") : a.has("Mac") ? a.get("Mac") : a.has("DOS") ? a.get("DOS") : null } a.prototype = { get filename() { if (!this._filename && this.root) { var a = b(this.root) || "unnamed"; this._filename = P(a).replace(/\\\\/g, "\\").replace(/\\\//g, "/").replace(/\\/g, "/") } return this._filename }, get content() { if (!this.contentAvailable) return null; !this.contentRef && this.root && (this.contentRef = b(this.root.get("EF"))); var a = null; if (this.contentRef) { var c = this.xref.fetchIfRef(this.contentRef); c && q(c) ? a = c.getBytes() : h("Embedded file specification points to non-existing/invalid content") } else h("Embedded file specification does not have a content"); return a }, get serializable() { return { filename: this.filename, content: this.content } } }; return a }(); O = function () { function a(b) { return f(b) || d(b) || K(b) || q(b) } function b(c, f) { var e; if (d(c) || q(c)) { var g; g = d(c) ? c.map : c.dict.map; for (var h in g) e = g[h], a(e) && f.push(e) } else if (K(c)) for (g = 0, h = c.length; g < h; g++) e = c[g], a(e) && f.push(e) } function c(a, b, d) { this.obj = a; this.keys = b; this.xref = d; this.capability = this.refSet = null } c.prototype = { load: function () { var a = this.keys; this.capability = u(); if (!(this.xref.stream instanceof T) || 0 === this.xref.stream.getMissingChunks().length) return this.capability.resolve(), this.capability.promise; this.refSet = new n; for (var b = [], c = 0; c < a.length; c++) b.push(this.obj[a[c]]); this._walk(b); return this.capability.promise }, _walk: function (a) { for (var c = [], d = []; a.length;) { var e = a.pop(); if (f(e)) { if (this.refSet.has(e)) continue; try { this.refSet.put(e), e = this.xref.fetch(e) } catch (g) { if (!(g instanceof k)) throw g; c.push(e); d.push({ begin: g.begin, end: g.end }) } } if (e && e.getBaseStreams) { for (var h = e.getBaseStreams(), l = !1, m = 0; m < h.length; m++) { var n = h[m]; n.getMissingChunks && n.getMissingChunks().length && (l = !0, d.push({ begin: n.start, end: n.end })) } l && c.push(e) } b(e, a) } d.length ? this.xref.stream.manager.requestRanges(d).then(function () { a = c; for (var b = 0; b < c.length; b++) { var d = c[b]; f(d) && this.refSet.remove(d) } this._walk(a) }.bind(this), this.capability.reject) : (this.refSet = null, this.capability.resolve()) } }; return c }(); e.Catalog = l; e.ObjectLoader = O; e.XRef = R; e.FileSpec = S }); (function (e, l) { l(e.pdfjsCorePattern = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreFunction, e.pdfjsCoreColorSpace) })(this, function (e, l, R, O, a) { var b = l.UNSUPPORTED_FEATURES, L = l.MissingDataException, Q = l.Util, k = l.assert, I = l.error, X = l.info, N = l.warn, u = R.isStream, G = O.PDFFunction, M = a.ColorSpace; l = function () { function a() { I("should not call Pattern constructor") } a.prototype = { getPattern: function (a) { I("Should not call Pattern.getStyle: " + a) } }; a.parseShading = function (a, e, k, l, h) { var c = u(a) ? a.dict : a, G = c.get("ShadingType"); try { switch (G) { case 2: case 3: return new K.RadialAxial(c, e, k, l); case 4: case 5: case 6: case 7: return new K.Mesh(a, e, k, l); default: throw Error("Unsupported ShadingType: " + G); } } catch (F) { if (F instanceof L) throw F; h.send("UnsupportedFeature", { featureId: b.shadingPattern }); N(F); return new K.Dummy } }; return a }(); var K = { SMALL_NUMBER: 1E-6 }; K.RadialAxial = function () { function a(b, e, k, l) { this.matrix = e; this.coordsArr = b.get("Coords"); this.shadingType = b.get("ShadingType"); this.type = "Pattern"; e = b.get("ColorSpace", "CS"); this.cs = e = M.parse(e, k, l); l = 0; var h = 1; if (b.has("Domain")) { var c = b.get("Domain"); l = c[0]; h = c[1] } var u = c = !1; b.has("Extend") && (u = b.get("Extend"), c = u[0], u = u[1]); if (!(3 !== this.shadingType || c && u)) { var F = this.coordsArr[0], n = this.coordsArr[1], A = this.coordsArr[2], g = this.coordsArr[3], m = this.coordsArr[4], d = this.coordsArr[5], F = Math.sqrt((F - g) * (F - g) + (n - m) * (n - m)); A <= d + F && d <= A + F && N("Unsupported radial gradient.") } this.extendStart = c; this.extendEnd = u; A = b.get("Function"); A = G.parseArray(k, A); d = h - l; F = d / 10; k = this.colorStops = []; if (l >= h || 0 >= F) X("Bad shading domain."); else { for (var n = new Float32Array(e.numComps), g = new Float32Array(1), f, m = l; m <= h; m += F) g[0] = m, A(g, 0, n, 0), f = e.getRgb(n, 0), f = Q.makeCssRgb(f[0], f[1], f[2]), k.push([(m - l) / d, f]); l = "transparent"; b.has("Background") && (f = e.getRgb(b.get("Background"), 0), l = Q.makeCssRgb(f[0], f[1], f[2])); c || (k.unshift([0, l]), k[1][0] += K.SMALL_NUMBER); u || (k[k.length - 1][0] -= K.SMALL_NUMBER, k.push([1, l])); this.colorStops = k } } a.prototype = { getIR: function () { var a = this.coordsArr, b = this.shadingType, e, k, h, c, l; 2 === b ? (k = [a[0], a[1]], h = [a[2], a[3]], l = c = null, e = "axial") : 3 === b ? (k = [a[0], a[1]], h = [a[3], a[4]], c = a[2], l = a[5], e = "radial") : I("getPattern type unknown: " + b); if (a = this.matrix) k = Q.applyTransform(k, a), h = Q.applyTransform(h, a), 3 === b && (b = Q.singularValueDecompose2dScale(a), c *= b[0], l *= b[1]); return ["RadialAxial", e, this.colorStops, k, h, c, l] } }; return a }(); K.Mesh = function () { function a(b, e) { this.stream = b; this.context = e; this.bufferLength = this.buffer = 0; this.tmpCompsBuf = new Float32Array(e.numComps); var c = e.colorSpace.numComps; this.tmpCsCompsBuf = e.colorFn ? new Float32Array(c) : this.tmpCompsBuf } function b(a) { for (var e = a.coords[0][0], c = a.coords[0][1], k = e, l = c, n = 1, u = a.coords.length; n < u; n++) var g = a.coords[n][0], m = a.coords[n][1], e = e > g ? g : e, c = c > m ? m : c, k = k < g ? g : k, l = l < m ? m : l; a.bounds = [e, c, k, l] } function e(r, h, c, C) { k(u(r), "Mesh data is not a stream"); var F = r.dict; this.matrix = h; this.shadingType = F.get("ShadingType"); this.type = "Pattern"; this.bbox = F.get("BBox"); h = F.get("ColorSpace", "CS"); this.cs = h = M.parse(h, c, C); this.background = F.has("Background") ? h.getRgb(F.get("Background"), 0) : null; c = (C = F.get("Function")) ? G.parseArray(c, C) : null; this.coords = []; this.colors = []; this.figures = []; c = { bitsPerCoordinate: F.get("BitsPerCoordinate"), bitsPerComponent: F.get("BitsPerComponent"), bitsPerFlag: F.get("BitsPerFlag"), decode: F.get("Decode"), colorFn: c, colorSpace: h, numComps: c ? 1 : h.numComps }; r = new a(r, c); c = !1; switch (this.shadingType) { case 4: F = this.coords; h = this.colors; C = []; for (var n = [], A = 0; r.hasData;) { var g = r.readFlag(), m = r.readCoordinate(), d = r.readComponents(); if (0 === A) { k(0 <= g && 2 >= g, "Unknown type4 flag"); switch (g) { case 0: A = 3; break; case 1: n.push(n[n.length - 2], n[n.length - 1]); A = 1; break; case 2: n.push(n[n.length - 3], n[n.length - 1]), A = 1 } C.push(g) } n.push(F.length); F.push(m); h.push(d); A--; r.align() } this.figures.push({ type: "triangles", coords: new Int32Array(n), colors: new Int32Array(n) }); break; case 5: F = F.get("VerticesPerRow") | 0; k(2 <= F, "Invalid VerticesPerRow"); h = this.coords; C = this.colors; for (n = []; r.hasData;) A = r.readCoordinate(), g = r.readComponents(), n.push(h.length), h.push(A), C.push(g); this.figures.push({ type: "lattice", coords: new Int32Array(n), colors: new Int32Array(n), verticesPerRow: F }); break; case 6: c = this.coords; F = this.colors; h = new Int32Array(16); for (C = new Int32Array(4) ; r.hasData;) { g = r.readFlag(); k(0 <= g && 3 >= g, "Unknown type6 flag"); n = c.length; m = 0; for (d = 0 !== g ? 8 : 12; m < d; m++) c.push(r.readCoordinate()); A = F.length; m = 0; for (d = 0 !== g ? 2 : 4; m < d; m++) F.push(r.readComponents()); var f; switch (g) { case 0: h[12] = n + 3; h[13] = n + 4; h[14] = n + 5; h[15] = n + 6; h[8] = n + 2; h[11] = n + 7; h[4] = n + 1; h[7] = n + 8; h[0] = n; h[1] = n + 11; h[2] = n + 10; h[3] = n + 9; C[2] = A + 1; C[3] = A + 2; C[0] = A; C[1] = A + 3; break; case 1: g = h[12]; m = h[13]; d = h[14]; f = h[15]; h[12] = f; h[13] = n + 0; h[14] = n + 1; h[15] = n + 2; h[8] = d; h[11] = n + 3; h[4] = m; h[7] = n + 4; h[0] = g; h[1] = n + 7; h[2] = n + 6; h[3] = n + 5; g = C[2]; m = C[3]; C[2] = m; C[3] = A; C[0] = g; C[1] = A + 1; break; case 2: g = h[15]; m = h[11]; h[12] = h[3]; h[13] = n + 0; h[14] = n + 1; h[15] = n + 2; h[8] = h[7]; h[11] = n + 3; h[4] = m; h[7] = n + 4; h[0] = g; h[1] = n + 7; h[2] = n + 6; h[3] = n + 5; g = C[3]; C[2] = C[1]; C[3] = A; C[0] = g; C[1] = A + 1; break; case 3: h[12] = h[0], h[13] = n + 0, h[14] = n + 1, h[15] = n + 2, h[8] = h[1], h[11] = n + 3, h[4] = h[2], h[7] = n + 4, h[0] = h[3], h[1] = n + 7, h[2] = n + 6, h[3] = n + 5, C[2] = C[0], C[3] = A, C[0] = C[1], C[1] = A + 1 } h[5] = c.length; c.push([(-4 * c[h[0]][0] - c[h[15]][0] + 6 * (c[h[4]][0] + c[h[1]][0]) - 2 * (c[h[12]][0] + c[h[3]][0]) + 3 * (c[h[13]][0] + c[h[7]][0])) / 9, (-4 * c[h[0]][1] - c[h[15]][1] + 6 * (c[h[4]][1] + c[h[1]][1]) - 2 * (c[h[12]][1] + c[h[3]][1]) + 3 * (c[h[13]][1] + c[h[7]][1])) / 9]); h[6] = c.length; c.push([(-4 * c[h[3]][0] - c[h[12]][0] + 6 * (c[h[2]][0] + c[h[7]][0]) - 2 * (c[h[0]][0] + c[h[15]][0]) + 3 * (c[h[4]][0] + c[h[14]][0])) / 9, (-4 * c[h[3]][1] - c[h[12]][1] + 6 * (c[h[2]][1] + c[h[7]][1]) - 2 * (c[h[0]][1] + c[h[15]][1]) + 3 * (c[h[4]][1] + c[h[14]][1])) / 9]); h[9] = c.length; c.push([(-4 * c[h[12]][0] - c[h[3]][0] + 6 * (c[h[8]][0] + c[h[13]][0]) - 2 * (c[h[0]][0] + c[h[15]][0]) + 3 * (c[h[11]][0] + c[h[1]][0])) / 9, (-4 * c[h[12]][1] - c[h[3]][1] + 6 * (c[h[8]][1] + c[h[13]][1]) - 2 * (c[h[0]][1] + c[h[15]][1]) + 3 * (c[h[11]][1] + c[h[1]][1])) / 9]); h[10] = c.length; c.push([(-4 * c[h[15]][0] - c[h[0]][0] + 6 * (c[h[11]][0] + c[h[14]][0]) - 2 * (c[h[12]][0] + c[h[3]][0]) + 3 * (c[h[2]][0] + c[h[8]][0])) / 9, (-4 * c[h[15]][1] - c[h[0]][1] + 6 * (c[h[11]][1] + c[h[14]][1]) - 2 * (c[h[12]][1] + c[h[3]][1]) + 3 * (c[h[2]][1] + c[h[8]][1])) / 9]); this.figures.push({ type: "patch", coords: new Int32Array(h), colors: new Int32Array(C) }) } c = !0; break; case 7: c = this.coords; F = this.colors; h = new Int32Array(16); for (C = new Int32Array(4) ; r.hasData;) { g = r.readFlag(); k(0 <= g && 3 >= g, "Unknown type7 flag"); n = c.length; m = 0; for (d = 0 !== g ? 12 : 16; m < d; m++) c.push(r.readCoordinate()); A = F.length; m = 0; for (d = 0 !== g ? 2 : 4; m < d; m++) F.push(r.readComponents()); switch (g) { case 0: h[12] = n + 3; h[13] = n + 4; h[14] = n + 5; h[15] = n + 6; h[8] = n + 2; h[9] = n + 13; h[10] = n + 14; h[11] = n + 7; h[4] = n + 1; h[5] = n + 12; h[6] = n + 15; h[7] = n + 8; h[0] = n; h[1] = n + 11; h[2] = n + 10; h[3] = n + 9; C[2] = A + 1; C[3] = A + 2; C[0] = A; C[1] = A + 3; break; case 1: g = h[12]; m = h[13]; d = h[14]; f = h[15]; h[12] = f; h[13] = n + 0; h[14] = n + 1; h[15] = n + 2; h[8] = d; h[9] = n + 9; h[10] = n + 10; h[11] = n + 3; h[4] = m; h[5] = n + 8; h[6] = n + 11; h[7] = n + 4; h[0] = g; h[1] = n + 7; h[2] = n + 6; h[3] = n + 5; g = C[2]; m = C[3]; C[2] = m; C[3] = A; C[0] = g; C[1] = A + 1; break; case 2: g = h[15]; m = h[11]; h[12] = h[3]; h[13] = n + 0; h[14] = n + 1; h[15] = n + 2; h[8] = h[7]; h[9] = n + 9; h[10] = n + 10; h[11] = n + 3; h[4] = m; h[5] = n + 8; h[6] = n + 11; h[7] = n + 4; h[0] = g; h[1] = n + 7; h[2] = n + 6; h[3] = n + 5; g = C[3]; C[2] = C[1]; C[3] = A; C[0] = g; C[1] = A + 1; break; case 3: h[12] = h[0], h[13] = n + 0, h[14] = n + 1, h[15] = n + 2, h[8] = h[1], h[9] = n + 9, h[10] = n + 10, h[11] = n + 3, h[4] = h[2], h[5] = n + 8, h[6] = n + 11, h[7] = n + 4, h[0] = h[3], h[1] = n + 7, h[2] = n + 6, h[3] = n + 5, C[2] = C[0], C[3] = A, C[0] = C[1], C[1] = A + 1 } this.figures.push({ type: "patch", coords: new Int32Array(h), colors: new Int32Array(C) }) } c = !0; break; default: I("Unsupported mesh type.") } if (c) for (b(this), r = 0, c = this.figures.length; r < c; r++) { F = r; A = this.figures[F]; k("patch" === A.type, "Unexpected patch mesh figure"); h = this.coords; C = this.colors; n = A.coords; A = A.colors; m = Math.min(h[n[0]][1], h[n[3]][1], h[n[12]][1], h[n[15]][1]); d = Math.max(h[n[0]][1], h[n[3]][1], h[n[12]][1], h[n[15]][1]); g = Math.ceil(20 * (Math.max(h[n[0]][0], h[n[3]][0], h[n[12]][0], h[n[15]][0]) - Math.min(h[n[0]][0], h[n[3]][0], h[n[12]][0], h[n[15]][0])) / (this.bounds[2] - this.bounds[0])); g = Math.max(3, Math.min(20, g)); m = Math.ceil(20 * (d - m) / (this.bounds[3] - this.bounds[1])); m = Math.max(3, Math.min(20, m)); d = g + 1; f = new Int32Array((m + 1) * d); for (var q = new Int32Array((m + 1) * d), w = 0, N = new Uint8Array(3), K = new Uint8Array(3), L = C[A[0]], B = C[A[1]], E = C[A[2]], t = C[A[3]], x = l(m), O = l(g), z = 0; z <= m; z++) { N[0] = (L[0] * (m - z) + E[0] * z) / m | 0; N[1] = (L[1] * (m - z) + E[1] * z) / m | 0; N[2] = (L[2] * (m - z) + E[2] * z) / m | 0; K[0] = (B[0] * (m - z) + t[0] * z) / m | 0; K[1] = (B[1] * (m - z) + t[1] * z) / m | 0; K[2] = (B[2] * (m - z) + t[2] * z) / m | 0; for (var y = 0; y <= g; y++, w++) if (0 !== z && z !== m || 0 !== y && y !== g) { for (var p = 0, D = 0, W = 0, Q = 0; 3 >= Q; Q++) for (var R = 0; 3 >= R; R++, W++) var Y = x[z][Q] * O[y][R], p = p + h[n[W]][0] * Y, D = D + h[n[W]][1] * Y; f[w] = h.length; h.push([p, D]); q[w] = C.length; p = new Uint8Array(3); p[0] = (N[0] * (g - y) + K[0] * y) / g | 0; p[1] = (N[1] * (g - y) + K[1] * y) / g | 0; p[2] = (N[2] * (g - y) + K[2] * y) / g | 0; C.push(p) } } f[0] = n[0]; q[0] = A[0]; f[g] = n[3]; q[g] = A[1]; f[d * m] = n[12]; q[d * m] = A[2]; f[d * m + g] = n[15]; q[d * m + g] = A[3]; this.figures[F] = { type: "lattice", coords: f, colors: q, verticesPerRow: d } } b(this); h = this.coords; C = new Float32Array(2 * h.length); F = r = 0; for (c = h.length; r < c; r++) n = h[r], C[F++] = n[0], C[F++] = n[1]; this.coords = C; h = this.colors; C = new Uint8Array(3 * h.length); F = r = 0; for (c = h.length; r < c; r++) n = h[r], C[F++] = n[0], C[F++] = n[1], C[F++] = n[2]; this.colors = C; h = this.figures; r = 0; for (c = h.length; r < c; r++) for (F = h[r], C = F.coords, A = F.colors, F = 0, n = C.length; F < n; F++) C[F] *= 2, A[F] *= 3 } a.prototype = { get hasData() { if (this.stream.end) return this.stream.pos < this.stream.end; if (0 < this.bufferLength) return !0; var a = this.stream.getByte(); if (0 > a) return !1; this.buffer = a; this.bufferLength = 8; return !0 }, readBits: function (a) { var b = this.buffer, c = this.bufferLength; if (32 === a) { if (0 === c) return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0; b = b << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte(); a = this.stream.getByte(); this.buffer = a & (1 << c) - 1; return (b << 8 - c | (a & 255) >> c) >>> 0 } if (8 === a && 0 === c) return this.stream.getByte(); for (; c < a;) b = b << 8 | this.stream.getByte(), c += 8; this.bufferLength = c -= a; this.buffer = b & (1 << c) - 1; return b >> c }, align: function () { this.bufferLength = this.buffer = 0 }, readFlag: function () { return this.readBits(this.context.bitsPerFlag) }, readCoordinate: function () { var a = this.context.bitsPerCoordinate, b = this.readBits(a), c = this.readBits(a), e = this.context.decode, a = 32 > a ? 1 / ((1 << a) - 1) : 2.3283064365386963E-10; return [b * a * (e[1] - e[0]) + e[0], c * a * (e[3] - e[2]) + e[2]] }, readComponents: function () { for (var a = this.context.numComps, b = this.context.bitsPerComponent, c = 32 > b ? 1 / ((1 << b) - 1) : 2.3283064365386963E-10, e = this.context.decode, k = this.tmpCompsBuf, l = 0, u = 4; l < a; l++, u += 2) { var g = this.readBits(b); k[l] = g * c * (e[u + 1] - e[u]) + e[u] } a = this.tmpCsCompsBuf; this.context.colorFn && this.context.colorFn(k, 0, a, 0); return this.context.colorSpace.getRgb(a, 0) } }; var l = function () { var a = []; return function (b) { if (!a[b]) { for (var c = [], e = 0; e <= b; e++) { var k = e / b, l = 1 - k; c.push(new Float32Array([l * l * l, 3 * k * l * l, 3 * k * k * l, k * k * k])) } a[b] = c } return a[b] } }(); e.prototype = { getIR: function () { return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background] } }; return e }(); K.Dummy = function () { function a() { this.type = "Pattern" } a.prototype = { getIR: function () { return ["Dummy"] } }; return a }(); e.Pattern = l; e.getTilingPatternIR = function (a, b, e) { var k = b.get("Matrix"), l = b.get("BBox"), h = b.get("XStep"), c = b.get("YStep"), u = b.get("PaintType"); b = b.get("TilingType"); return ["TilingPattern", e, a, k, l, h, c, u, b] } }); (function (e, l) { l(e.pdfjsCoreEvaluator = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream, e.pdfjsCoreParser, e.pdfjsCoreImage, e.pdfjsCoreColorSpace, e.pdfjsCoreMurmurHash3, e.pdfjsCoreFonts, e.pdfjsCoreFunction, e.pdfjsCorePattern, e.pdfjsCoreCMap, e.pdfjsCoreMetrics, e.pdfjsCoreBidi, e.pdfjsCoreEncodings, e.pdfjsCoreStandardFonts, e.pdfjsCoreUnicode, e.pdfjsCoreGlyphList) })(this, function (e, l, R, O, a, b, L, Q, k, I, X, N, u, G, M, K, J, v) { var r = l.FONT_IDENTITY_MATRIX, P = l.IDENTITY_MATRIX, H = l.UNSUPPORTED_FEATURES, h = l.ImageKind, c = l.OPS, C = l.TextRenderingMode, F = l.Util, n = l.assert, A = l.createPromiseCapability, g = l.error, m = l.info, d = l.isArray, f = l.isNum, q = l.isString, w = l.getLookupTableFactory, U = l.warn, V = R.Dict, T = R.Name, B = R.isCmd, E = R.isDict, t = R.isName, x = R.isRef, S = R.isStream, z = O.DecodeStream, y = O.JpegStream, p = O.Stream, D = a.Lexer, W = a.Parser, eb = a.isEOF, ya = b.PDFImage, Y = L.ColorSpace, sb = Q.MurmurHash3_64, Wa = k.ErrorFont, ta = k.FontFlags, da = k.Font, ia = k.IdentityToUnicodeMap, la = k.ToUnicodeMap, pa = k.getFontType, ha = I.isPDFFunction, xa = I.PDFFunction, Xa = X.Pattern, ma = X.getTilingPatternIR, na = N.CMapFactory, La = N.IdentityCMap, oa = u.getMetrics, za = G.bidi, ja = M.WinAnsiEncoding, ua = M.StandardEncoding, yc = M.MacRomanEncoding, aa = M.SymbolSetEncoding, Ma = M.ZapfDingbatsEncoding, Ga = M.getEncoding, ub = K.getStdFontMap, Ya = K.getSerifFonts, Aa = K.getSymbolsFonts, ca = J.getNormalizedUnicodes, Na = J.reverseIfRtl, Za = J.getUnicodeForGlyph, qa = v.getGlyphsUnicode; l = function () { function a(b, c, d, f) { this.xref = b; this.resources = c; this.handler = d; this.forceDataSchema = f } function b(a, c, d, f, e, g, k, l) { this.pdfManager = a; this.xref = c; this.handler = d; this.pageIndex = f; this.uniquePrefix = e; this.idCounters = g; this.fontCache = k; this.options = l || h } function e() { this.reset() } var h = { forceDataSchema: !1, maxImageSize: -1, disableFontFace: !1, cMapOptions: { url: null, packed: !1 } }; a.prototype = { canDecode: function (b) { return b instanceof y && a.isDecodable(b, this.xref, this.resources) }, decode: function (a) { var b = a.dict.get("ColorSpace", "CS"), b = Y.parse(b, this.xref, this.resources), b = b.numComps; return this.handler.sendWithPromise("JpegDecode", [a.getIR(this.forceDataSchema), b]).then(function (b) { b = b.data; return new p(b, 0, b.length, a.dict) }) } }; a.isSupported = function (a, b, c) { b = Y.parse(a.dict.get("ColorSpace", "CS"), b, c); return ("DeviceGray" === b.name || "DeviceRGB" === b.name) && b.isDefaultDecode(a.dict.get("Decode", "D")) }; a.isDecodable = function (a, b, c) { b = Y.parse(a.dict.get("ColorSpace", "CS"), b, c); return (1 === b.numComps || 3 === b.numComps) && b.isDefaultDecode(a.dict.get("Decode", "D")) }; e.prototype = { check: function () { if (100 > ++this.checked) return !1; this.checked = 0; return this.endTime <= Date.now() }, reset: function () { this.endTime = Date.now() + 20; this.checked = 0 } }; var k = Promise.resolve(); b.prototype = { hasBlendModes: function (a) { if (!E(a)) return !1; var b = Object.create(null); a.objId && (b[a.objId] = !0); a = [a]; for (var c = this.xref; a.length;) { var d, f, e, g = a.shift(), h = g.get("ExtGState"); if (E(h)) { var k = h.getKeys(); f = 0; for (e = k.length; f < e; f++) if (d = k[f], d = h.get(d).get("BM"), t(d) && "Normal" !== d.name) return !0 } g = g.get("XObject"); if (E(g)) for (h = g.getKeys(), f = 0, e = h.length; f < e; f++) { d = h[f]; d = g.getRaw(d); if (x(d)) { if (b[d.toString()]) continue; d = c.fetch(d) } if (S(d)) { if (d.dict.objId) { if (b[d.dict.objId]) continue; b[d.dict.objId] = !0 } d = d.dict.get("Resources"); !E(d) || d.objId && b[d.objId] || (a.push(d), d.objId && (b[d.objId] = !0)) } } } return !1 }, buildFormXObject: function (a, b, d, f, e, g) { var h = b.dict.getArray("Matrix"), k = b.dict.getArray("BBox"), l = b.dict.get("Group"); if (l) { var m = { matrix: h, bbox: k, smask: d, isolated: !1, knockout: !1 }, n = l.get("S"), p; t(n) && "Transparency" === n.name && (m.isolated = l.get("I") || !1, m.knockout = l.get("K") || !1, p = l.has("CS") ? Y.parse(l.get("CS"), this.xref, a) : null); d && d.backdrop && (p = p || Y.singletons.rgb, d.backdrop = p.getRgb(d.backdrop, 0)); f.addOp(c.beginGroup, [m]) } f.addOp(c.paintFormXObjectBegin, [h, k]); return this.getOperatorList(b, e, b.dict.get("Resources") || a, f, g).then(function () { f.addOp(c.paintFormXObjectEnd, []); l && f.addOp(c.endGroup, [m]) }) }, buildPaintImageXObject: function (b, d, e, g, h, k) { var l = this, m = d.dict, n = m.get("Width", "W"), p = m.get("Height", "H"); if (n && f(n) && p && f(p)) { var q = this.options.maxImageSize; if (-1 !== q && n * p > q) U("Image exceeded maximum allowed size and was removed."); else if (m.get("ImageMask", "IM")) b = m.get("Width", "W"), e = m.get("Height", "H"), q = d.getBytes((b + 7 >> 3) * e), m = m.get("Decode", "D"), d = ya.createMask(q, b, e, d instanceof z, !!m && 0 < m[0]), d.cached = !0, n = [d], g.addOp(c.paintImageMaskXObject, n), h && (k[h] = { fn: c.paintImageMaskXObject, args: n }); else if (q = m.get("SMask", "SM") || !1, m = m.get("Mask") || !1, !(!e || q || m || d instanceof y) && 200 > n + p) d = (new ya(this.xref, b, d, e, null, null)).createImageData(!0), g.addOp(c.paintInlineImageXObject, [d]); else { var t = "img_" + (this.uniquePrefix || "") + ++this.idCounters.obj; g.addDependency(t); n = [t, n, p]; if (!q && !m && d instanceof y && a.isSupported(d, this.xref, b)) g.addOp(c.paintJpegXObject, n), this.handler.send("obj", [t, this.pageIndex, "JpegStream", d.getIR(this.options.forceDataSchema)]); else { p = null; if (d instanceof y || m instanceof y || q instanceof y) p = new a(l.xref, b, l.handler, l.options.forceDataSchema); ya.buildImage(l.handler, l.xref, b, d, e, p).then(function (a) { a = a.createImageData(!1); l.handler.send("obj", [t, l.pageIndex, "Image", a], [a.data.buffer]) }).then(void 0, function (a) { U("Unable to decode image: " + a); l.handler.send("obj", [t, l.pageIndex, "Image", null]) }); g.addOp(c.paintImageXObject, n); h && (k[h] = { fn: c.paintImageXObject, args: n }) } } } else U("Image dimensions are missing, or not numbers.") }, handleSMask: function (a, b, c, d, f) { var e = a.get("G"), g = { subtype: a.get("S").name, backdrop: a.get("BC") }; a = a.get("TR"); if (ha(a)) { a = xa.parse(this.xref, a); for (var h = new Uint8Array(256), k = new Float32Array(1), l = 0; 256 > l; l++) k[0] = l / 255, a(k, 0, k, 0), h[l] = 255 * k[0] | 0; g.transferMap = h } return this.buildFormXObject(b, e, g, c, d, f.state.clone()) }, handleTilingType: function (a, b, c, d, f, e, g) { var h = new ga; c = [f.get("Resources"), c]; c = V.merge(this.xref, c); return this.getOperatorList(d, g, c, h).then(function () { e.addDependencies(h.dependencies); e.addOp(a, ma({ fnArray: h.fnArray, argsArray: h.argsArray }, f, b)) }) }, handleSetFont: function (a, b, c, d, f, e) { var g; b && (b = b.slice(), g = b[0].name); var h = this; return this.loadFont(g, c, this.xref, a).then(function (b) { return b.font.isType3Font ? b.loadType3Data(h, a, d, f).then(function () { return b }, function (a) { h.handler.send("UnsupportedFeature", { featureId: H.font }); return new $a("g_font_error", new Wa("Type3 font load error: " + a), b.font) }) : b }).then(function (a) { e.font = a.font; a.send(h.handler); return a.loadedName }) }, handleText: function (a, b) { var c = b.font, d = c.charsToGlyphs(a), f = !!(b.textRenderingMode & C.ADD_TO_PATH_FLAG); if (c.data && (f || this.options.disableFontFace)) for (var f = function (a) { if (!c.renderer.hasBuiltPath(a)) { var b = c.renderer.getPathJs(a); this.handler.send("commonobj", [c.loadedName + "_path_" + a, "FontPath", b]) } }.bind(this), e = 0, g = d.length; e < g; e++) { var h = d[e]; f(h.fontChar); (h = h.accent) && h.fontChar && f(h.fontChar) } return d }, setGState: function (a, b, d, f, e, g) { var h = []; e = b.getKeys(); for (var k = this, l = Promise.resolve(), n = 0, p = e.length; n < p; n++) { var q = e[n], u = b.get(q); switch (q) { case "Type": break; case "LW": case "LC": case "LJ": case "ML": case "D": case "RI": case "FL": case "CA": case "ca": h.push([q, u]); break; case "Font": l = l.then(function () { return k.handleSetFont(a, null, u[0], d, f, g.state).then(function (a) { d.addDependency(a); h.push([q, [a, u[1]]]) }) }); break; case "BM": h.push([q, u]); break; case "SMask": if (t(u) && "None" === u.name) { h.push([q, !1]); break } E(u) ? (l = l.then(function (b) { return k.handleSMask(b, a, d, f, g) }.bind(this, u)), h.push([q, !0])) : U("Unsupported SMask type"); break; case "OP": case "op": case "OPM": case "BG": case "BG2": case "UCR": case "UCR2": case "TR": case "TR2": case "HT": case "SM": case "SA": case "AIS": case "TK": m("graphic state operator " + q); break; default: m("Unknown graphic state operator " + q) } } return l.then(function () { 0 < h.length && d.addOp(c.setGState, [h]) }) }, loadFont: function (a, b, c, d) { function f() { return Promise.resolve(new $a("g_font_error", new Wa("Font " + a + " is not available"), b)) } if (b) n(x(b)), d = b; else if (d = d.get("Font")) d = d.getRaw(a); else return U("fontRes not available"), f(); if (!d) return U("fontRef not available"), f(); if (this.fontCache.has(d)) return this.fontCache.get(d); b = c.fetchIfRef(d); if (!E(b)) return f(); if (b.translated) return b.translated; var e = A(), g = this.preEvaluateFont(b, c), h = g.descriptor, k = d.num + "_" + d.gen; if (E(h)) { h.fontAliases || (h.fontAliases = Object.create(null)); k = h.fontAliases; h = g.hash; if (k[h]) { var l = k[h].aliasRef; if (l && this.fontCache.has(l)) return this.fontCache.putAlias(d, l), this.fontCache.get(d) } k[h] || (k[h] = { fontID: da.getFontID() }); k[h].aliasRef = d; k = k[h].fontID } (h = E(d)) || this.fontCache.put(d, e.promise); b.loadedName = "g_" + this.pdfManager.docId + "_f" + (h ? a.replace(/\W/g, "") : k); b.translated = e.promise; var m; try { m = this.translateFont(g, c) } catch (p) { m = Promise.reject(p) } var q = this; m.then(function (a) { void 0 !== a.fontType && (c.stats.fontTypes[a.fontType] = !0); e.resolve(new $a(b.loadedName, a, b)) }, function (a) { q.handler.send("UnsupportedFeature", { featureId: H.font }); try { var d = g.descriptor, f = d && d.get("FontFile3"), h = f && f.get("Subtype"), k = pa(g.type, h && h.name); c.stats.fontTypes[k] = !0 } catch (l) { } e.resolve(new $a(b.loadedName, new Wa(a instanceof Error ? a.message : a), b)) }); return e.promise }, buildPath: function (a, b, d) { var f = a.length - 1; d || (d = []); 0 > f || a.fnArray[f] !== c.constructPath ? a.addOp(c.constructPath, [[b], d]) : (a = a.argsArray[f], a[0].push(b), Array.prototype.push.apply(a[1], d)) }, handleColorN: function (a, b, c, d, f, e, g, h) { var k = c[c.length - 1], l; if (t(k) && (l = f.get(k.name))) return f = S(l) ? l.dict : l, k = f.get("PatternType"), 1 === k ? (h = d.base ? d.base.getRgb(c, 0) : null, this.handleTilingType(b, h, e, l, f, a, g)) : 2 === k ? (g = f.get("Shading"), l = f.get("Matrix"), l = Xa.parseShading(g, l, h, e, this.handler), a.addOp(b, l.getIR()), Promise.resolve()) : Promise.reject("Unknown PatternType: " + k); a.addOp(b, c); return Promise.resolve() }, getOperatorList: function (a, b, d, h, l) { var p = this, u = this.xref, r = Object.create(null); n(h); d = d || V.empty; var D = d.get("XObject") || V.empty, w = d.get("Pattern") || V.empty, y = new Da(l || new mb), z = new ba(a, u, y), x = new e; return new Promise(function Pa(a, e) { var l = function (b) { b.then(function () { try { Pa(a, e) } catch (b) { e(b) } }, e) }; b.ensureNotTerminated(); x.reset(); for (var v, A = {}, B, G; !(v = x.check()) ;) { A.args = null; if (!z.read(A)) break; v = A.args; var F = A.fn; switch (F | 0) { case c.paintXObject: if (v[0].code) break; B = v[0].name; if (!B) { U("XObject must be referred to by name."); continue } if (void 0 !== r[B]) { h.addOp(r[B].fn, r[B].args); v = null; continue } if (G = D.get(B)) { n(S(G), "XObject should be a stream"); var C = G.dict.get("Subtype"); n(t(C), "XObject should have a Name subtype"); if ("Form" === C.name) { y.save(); l(p.buildFormXObject(d, G, null, h, b, y.state.clone()).then(function () { y.restore() })); return } if ("Image" === C.name) { p.buildPaintImageXObject(d, G, !1, h, B, r); v = null; continue } else if ("PS" === C.name) { m("Ignored XObject subtype PS"); continue } else g("Unhandled XObject subtype " + C.name) } break; case c.setFont: var N = v[1]; l(p.handleSetFont(d, v, null, h, b, y.state).then(function (a) { h.addDependency(a); h.addOp(c.setFont, [a, N]) })); return; case c.endInlineImage: if (B = v[0].cacheKey) if (F = r[B], void 0 !== F) { h.addOp(F.fn, F.args); v = null; continue } p.buildPaintImageXObject(d, v[0], !0, h, B, r); v = null; continue; case c.showText: v[0] = p.handleText(v[0], y.state); break; case c.showSpacedText: F = v[0]; G = []; var C = F.length, W = y.state; for (B = 0; B < C; ++B) { var H = F[B]; q(H) ? Array.prototype.push.apply(G, p.handleText(H, W)) : f(H) && G.push(H) } v[0] = G; F = c.showText; break; case c.nextLineShowText: h.addOp(c.nextLine); v[0] = p.handleText(v[0], y.state); F = c.showText; break; case c.nextLineSetSpacingShowText: h.addOp(c.nextLine); h.addOp(c.setWordSpacing, [v.shift()]); h.addOp(c.setCharSpacing, [v.shift()]); v[0] = p.handleText(v[0], y.state); F = c.showText; break; case c.setTextRenderingMode: y.state.textRenderingMode = v[0]; break; case c.setFillColorSpace: y.state.fillColorSpace = Y.parse(v[0], u, d); continue; case c.setStrokeColorSpace: y.state.strokeColorSpace = Y.parse(v[0], u, d); continue; case c.setFillColor: B = y.state.fillColorSpace; v = B.getRgb(v, 0); F = c.setFillRGBColor; break; case c.setStrokeColor: B = y.state.strokeColorSpace; v = B.getRgb(v, 0); F = c.setStrokeRGBColor; break; case c.setFillGray: y.state.fillColorSpace = Y.singletons.gray; v = Y.singletons.gray.getRgb(v, 0); F = c.setFillRGBColor; break; case c.setStrokeGray: y.state.strokeColorSpace = Y.singletons.gray; v = Y.singletons.gray.getRgb(v, 0); F = c.setStrokeRGBColor; break; case c.setFillCMYKColor: y.state.fillColorSpace = Y.singletons.cmyk; v = Y.singletons.cmyk.getRgb(v, 0); F = c.setFillRGBColor; break; case c.setStrokeCMYKColor: y.state.strokeColorSpace = Y.singletons.cmyk; v = Y.singletons.cmyk.getRgb(v, 0); F = c.setStrokeRGBColor; break; case c.setFillRGBColor: y.state.fillColorSpace = Y.singletons.rgb; v = Y.singletons.rgb.getRgb(v, 0); break; case c.setStrokeRGBColor: y.state.strokeColorSpace = Y.singletons.rgb; v = Y.singletons.rgb.getRgb(v, 0); break; case c.setFillColorN: B = y.state.fillColorSpace; if ("Pattern" === B.name) { l(p.handleColorN(h, c.setFillColorN, v, B, w, d, b, u)); return } v = B.getRgb(v, 0); F = c.setFillRGBColor; break; case c.setStrokeColorN: B = y.state.strokeColorSpace; if ("Pattern" === B.name) { l(p.handleColorN(h, c.setStrokeColorN, v, B, w, d, b, u)); return } v = B.getRgb(v, 0); F = c.setStrokeRGBColor; break; case c.shadingFill: (B = d.get("Shading")) || g("No shading resource found"); (v = B.get(v[0].name)) || g("No shading object found"); v = [Xa.parseShading(v, null, u, d, p.handler).getIR()]; F = c.shadingFill; break; case c.setGState: B = v[0]; G = d.get("ExtGState"); if (!E(G) || !G.has(B.name)) break; A = G.get(B.name); l(p.setGState(d, A, h, b, u, y)); return; case c.moveTo: case c.lineTo: case c.curveTo: case c.curveTo2: case c.curveTo3: case c.closePath: p.buildPath(h, F, v); continue; case c.rectangle: p.buildPath(h, F, v); continue; case c.markPoint: case c.markPointProps: case c.beginMarkedContent: case c.beginMarkedContentProps: case c.endMarkedContent: case c.beginCompat: case c.endCompat: continue; default: if (null !== v) { B = 0; for (G = v.length; B < G && !(v[B] instanceof V) ; B++); if (B < G) { U("getOperatorList - ignoring operator: " + F); continue } } } h.addOp(F, v) } if (v) l(k); else { B = 0; for (G = z.savedStatesDepth; B < G; B++) h.addOp(c.restore, []); a() } }) }, getTextContent: function (a, b, f, g, h) { function l() { if (v.initialized) return v; var a = C.font; a.loadedName in y.styles || (y.styles[a.loadedName] = { fontFamily: a.fallbackName, ascent: a.ascent, descent: a.descent, vertical: a.vertical }); v.fontName = a.loadedName; var b = [C.fontSize * C.textHScale, 0, 0, C.fontSize, 0, C.textRise]; if (a.isType3Font && C.fontMatrix !== r && 1 === C.fontSize) { var c = a.bbox[3] - a.bbox[1]; 0 < c && (c *= C.fontMatrix[3], b[3] *= c) } b = F.transform(C.ctm, F.transform(C.textMatrix, b)); v.transform = b; a.vertical ? (v.width = Math.sqrt(b[0] * b[0] + b[1] * b[1]), v.height = 0, v.vertical = !0) : (v.width = 0, v.height = Math.sqrt(b[2] * b[2] + b[3] * b[3]), v.vertical = !1); var b = C.textLineMatrix[0], c = C.textLineMatrix[1], d = Math.sqrt(b * b + c * c), b = C.ctm[0], c = C.ctm[1]; v.textAdvanceScale = Math.sqrt(b * b + c * c) * d; v.lastAdvanceWidth = 0; v.lastAdvanceHeight = 0; (b = a.spaceWidth / 1E3 * C.fontSize) ? (v.spaceWidth = b, v.fakeSpaceMin = .3 * b, v.fakeMultiSpaceMin = 1.5 * b, v.fakeMultiSpaceMax = 4 * b, v.textRunBreakAllowed = !a.isMonospace) : (v.spaceWidth = 0, v.fakeSpaceMin = Infinity, v.fakeMultiSpaceMin = Infinity, v.fakeMultiSpaceMax = 0, v.textRunBreakAllowed = !1); v.initialized = !0; return v } function m(a) { var b = a.str.join(""), b = za(b, -1, a.vertical), c; if (h) { for (var d = b.str, f = 0, e = d.length; f < e && 32 <= (c = d.charCodeAt(f)) && 127 >= c;) f++; c = f < e ? d.replace(w, " ") : d } else c = b.str; return { str: c, dir: b.dir, width: a.width, height: a.height, transform: a.transform, fontName: a.fontName } } function p(a, b) { return z.loadFont(a, b, x, f).then(function (a) { C.font = a.font; C.fontMatrix = a.font.fontMatrix || r }) } function q(a) { var b = C.font, c = l(), d = 0, f = 0; a = b.charsToGlyphs(a); for (var e = 0; e < a.length; e++) { var g = a[e], h = null, h = b.vertical ? g.vmetric ? g.vmetric[0] : g.width : g.width, k = g.unicode, m = ca(); void 0 !== m[k] && (k = m[k]); k = Na(k); m = C.charSpacing; g.isSpace && (g = C.wordSpacing, m += g, 0 < g && u(g, c.str)); var n = g = 0; b.vertical ? (n = h * C.fontMatrix[0] * C.fontSize + m, f += n) : (g = (h * C.fontMatrix[0] * C.fontSize + m) * C.textHScale, d += g); C.translateTextMatrix(g, n); c.str.push(k) } b.vertical ? (c.lastAdvanceHeight = f, c.height += Math.abs(f * c.textAdvanceScale)) : (c.lastAdvanceWidth = d, c.width += d * c.textAdvanceScale); return c } function u(a, b) { if (!(a < v.fakeSpaceMin)) if (a < v.fakeMultiSpaceMin) b.push(" "); else for (var c = Math.round(a / v.spaceWidth) ; 0 < c--;) b.push(" ") } function D() { v.initialized && (y.items.push(m(v)), v.initialized = !1, v.str.length = 0) } g = g || new Da(new Jb); var w = /\s/g, y = { items: [], styles: Object.create(null) }, v = { initialized: !1, str: [], width: 0, height: 0, vertical: !1, lastAdvanceWidth: 0, lastAdvanceHeight: 0, textAdvanceScale: 0, spaceWidth: 0, fakeSpaceMin: Infinity, fakeMultiSpaceMin: Infinity, fakeMultiSpaceMax: -0, textRunBreakAllowed: !1, transform: null, fontName: null }, z = this, x = this.xref; f = x.fetchIfRef(f) || V.empty; var B = null, A = Object.create(null), G = new ba(a, x, g), C, N = new e; return new Promise(function Ob(a, e) { var m = function (b) { b.then(function () { try { Ob(a, e) } catch (b) { e(b) } }, e) }; b.ensureNotTerminated(); N.reset(); for (var r, w = {}, x = []; !(r = N.check()) ;) { x.length = 0; w.args = x; if (!G.read(w)) break; C = g.state; r = w.fn; x = w.args; switch (r | 0) { case c.setFont: D(); C.fontSize = x[1]; m(p(x[0].name)); return; case c.setTextRise: D(); C.textRise = x[0]; break; case c.setHScale: D(); C.textHScale = x[0] / 100; break; case c.setLeading: D(); C.leading = x[0]; break; case c.moveText: var W = C.font ? 0 === (C.font.vertical ? x[0] : x[1]) : !1; r = x[0] - x[1]; if (W && v.initialized && 0 < r && r <= v.fakeMultiSpaceMax) { C.translateTextLineMatrix(x[0], x[1]); v.width += x[0] - v.lastAdvanceWidth; v.height += x[1] - v.lastAdvanceHeight; u(x[0] - v.lastAdvanceWidth - (x[1] - v.lastAdvanceHeight), v.str); break } D(); C.translateTextLineMatrix(x[0], x[1]); C.textMatrix = C.textLineMatrix.slice(); break; case c.setLeadingMoveText: D(); C.leading = -x[1]; C.translateTextLineMatrix(x[0], x[1]); C.textMatrix = C.textLineMatrix.slice(); break; case c.nextLine: D(); C.carriageReturn(); break; case c.setTextMatrix: D(); C.setTextMatrix(x[0], x[1], x[2], x[3], x[4], x[5]); C.setTextLineMatrix(x[0], x[1], x[2], x[3], x[4], x[5]); break; case c.setCharSpacing: C.charSpacing = x[0]; break; case c.setWordSpacing: C.wordSpacing = x[0]; break; case c.beginText: D(); C.textMatrix = P.slice(); C.textLineMatrix = P.slice(); break; case c.showSpacedText: for (var W = x[0], H, M = 0, K = W.length; M < K; M++) if ("string" === typeof W[M]) q(W[M]); else { l(); r = W[M] * C.fontSize / 1E3; var J = !1; C.font.vertical ? (H = r * (C.textHScale * C.textMatrix[2] + C.textMatrix[3]), C.translateTextMatrix(0, r), J = v.textRunBreakAllowed && r > v.fakeMultiSpaceMax, J || (v.height += H)) : (r = -r, H = r * (C.textHScale * C.textMatrix[0] + C.textMatrix[1]), C.translateTextMatrix(r, 0), J = v.textRunBreakAllowed && r > v.fakeMultiSpaceMax, J || (v.width += H)); J ? D() : 0 < r && u(r, v.str) } break; case c.showText: q(x[0]); break; case c.nextLineShowText: D(); C.carriageReturn(); q(x[0]); break; case c.nextLineSetSpacingShowText: D(); C.wordSpacing = x[0]; C.charSpacing = x[1]; C.carriageReturn(); q(x[2]); break; case c.paintXObject: D(); if (x[0].code) break; B || (B = f.get("XObject") || V.empty); var I = x[0].name; if (A.key === I) { A.texts && (F.appendToArray(y.items, A.texts.items), F.extendObj(y.styles, A.texts.styles)); break } r = B.get(I); if (!r) break; n(S(r), "XObject should be a stream"); W = r.dict.get("Subtype"); n(t(W), "XObject should have a Name subtype"); if ("Form" !== W.name) { A.key = I; A.texts = null; break } g.save(); w = r.dict.get("Matrix"); d(w) && 6 === w.length && g.transform(w); m(z.getTextContent(r, b, r.dict.get("Resources") || f, g, h).then(function (a) { F.appendToArray(y.items, a.items); F.extendObj(y.styles, a.styles); g.restore(); A.key = I; A.texts = a })); return; case c.setGState: if (D(), r = x[0], W = f.get("ExtGState"), E(W) && W.has(r.name)) { r = W.get(r.name); var W = null, L; for (L in r) "Font" === L && (n(!W), W = r[L]); if (W) { C.fontSize = W[1]; m(p(W[0])); return } } } } r ? m(k) : (D(), a(y)) }) }, extractDataStructures: function (a, b, c, d) { b = (b = a.get("ToUnicode") || b.get("ToUnicode")) ? this.readToUnicode(b) : Promise.resolve(void 0); if (d.composite) { var e = a.get("CIDSystemInfo"); E(e) && (d.cidSystemInfo = { registry: e.get("Registry"), ordering: e.get("Ordering"), supplement: e.get("Supplement") }); e = a.get("CIDToGIDMap"); S(e) && (d.cidToGidMap = this.readCidToGidMap(e)) } var e = [], h = null, k; if (a.has("Encoding")) { k = a.get("Encoding"); if (E(k)) { if (h = k.get("BaseEncoding"), h = t(h) ? h.name : null, k.has("Differences")) { k = k.get("Differences"); for (var l = 0, m = 0, n = k.length; m < n; m++) { var p = c.fetchIfRef(k[m]); f(p) ? l = p : t(p) ? e[l++] = p.name : g("Invalid entry in 'Differences' array: " + p) } } } else t(k) ? h = k.name : g("Encoding is not a Name nor a Dict"); "MacRomanEncoding" !== h && "MacExpertEncoding" !== h && "WinAnsiEncoding" !== h && (h = null) } h ? d.defaultEncoding = Ga(h).slice() : (k = "TrueType" === d.type ? ja : ua, d.flags & ta.Symbolic && (k = yc, d.file || (/Symbol/i.test(d.name) ? k = aa : /Dingbats/i.test(d.name) && (k = Ma))), d.defaultEncoding = k); d.differences = e; d.baseEncodingName = h; d.dict = a; return b.then(function (a) { d.toUnicode = a; return this.buildToUnicode(d) }.bind(this)).then(function (a) { d.toUnicode = a; return d }) }, buildToUnicode: function (a) { if (a.toUnicode && 0 !== a.toUnicode.length) return Promise.resolve(a.toUnicode); var b, c; if (!a.composite) { b = []; var d = a.defaultEncoding.slice(), f = a.baseEncodingName, e = a.differences; for (c in e) d[c] = e[c]; e = qa(); for (c in d) { var g = d[c]; if ("" !== g) if (void 0 === e[g]) { var h = 0; switch (g[0]) { case "G": 3 === g.length && (h = parseInt(g.substr(1), 16)); break; case "g": 5 === g.length && (h = parseInt(g.substr(1), 16)); break; case "C": case "c": 3 <= g.length && (h = +g.substr(1)); break; default: var k = Za(g, e); -1 !== k && (h = k) } if (h) { if (f && h === +c && (k = Ga(f)) && (g = k[c])) { b[c] = String.fromCharCode(e[g]); continue } b[c] = String.fromCharCode(h) } } else b[c] = String.fromCharCode(e[g]) } return Promise.resolve(new la(b)) } return !a.composite || (!a.cMap.builtInCMap || a.cMap instanceof La) && ("Adobe" !== a.cidSystemInfo.registry || "GB1" !== a.cidSystemInfo.ordering && "CNS1" !== a.cidSystemInfo.ordering && "Japan1" !== a.cidSystemInfo.ordering && "Korea1" !== a.cidSystemInfo.ordering) ? Promise.resolve(new ia(a.firstChar, a.lastChar)) : (c = T.get(a.cidSystemInfo.registry + "-" + a.cidSystemInfo.ordering + "-UCS2"), na.create(c, this.options.cMapOptions, null).then(function (c) { var d = a.cMap; b = []; d.forEach(function (a, d) { n(65535 >= d, "Max size of CID is 65,535"); var f = c.lookup(d); f && (b[a] = String.fromCharCode((f.charCodeAt(0) << 8) + f.charCodeAt(1))) }); return new la(b) })) }, readToUnicode: function (a) { return t(a) ? na.create(a, this.options.cMapOptions, null).then(function (a) { return a instanceof La ? new ia(0, 65535) : new la(a.getMap()) }) : S(a) ? na.create(a, this.options.cMapOptions, null).then(function (a) { if (a instanceof La) return new ia(0, 65535); var b = Array(a.length); a.forEach(function (a, c) { for (var d = [], f = 0; f < c.length; f += 2) { var e = c.charCodeAt(f) << 8 | c.charCodeAt(f + 1); if (55296 !== (e & 63488)) d.push(e); else { var f = f + 2, g = c.charCodeAt(f) << 8 | c.charCodeAt(f + 1); d.push(((e & 1023) << 10) + (g & 1023) + 65536) } } b[a] = String.fromCharCode.apply(String, d) }); return new la(b) }) : Promise.resolve(null) }, readCidToGidMap: function (a) { a = a.getBytes(); for (var b = [], c = 0, d = a.length; c < d; c++) { var f = a[c++] << 8 | a[c]; 0 !== f && (b[c >> 1] = f) } return b }, extractWidths: function (a, b, c, f) { var e = [], g = 0, h = [], k, l, m, n, p, q, r; if (f.composite) { g = a.get("DW") || 1E3; if (r = a.get("W")) for (l = 0, m = r.length; l < m; l++) if (c = r[l++], q = b.fetchIfRef(r[l]), d(q)) for (n = 0, p = q.length; n < p; n++) e[c++] = q[n]; else for (p = r[++l], n = c; n <= q; n++) e[n] = p; if (f.vertical && (r = a.get("DW2") || [880, -1E3], k = [r[1], .5 * g, r[0]], r = a.get("W2"))) for (l = 0, m = r.length; l < m; l++) if (c = r[l++], q = b.fetchIfRef(r[l]), d(q)) for (n = 0, p = q.length; n < p; n++) h[c++] = [q[n++], q[n++], q[n]]; else for (a = [r[++l], r[++l], r[++l]], n = c; n <= q; n++) h[n] = a } else if (b = f.firstChar, r = a.get("Widths")) { n = b; l = 0; for (m = r.length; l < m; l++) e[n++] = r[l]; g = parseFloat(c.get("MissingWidth")) || 0 } else a = a.get("BaseFont"), t(a) && (g = this.getBaseFontMetrics(a.name), e = this.buildCharCodeToWidth(g.widths, f), g = g.defaultWidth); a = !0; b = g; for (var u in e) if (l = e[u]) if (!b) b = l; else if (b !== l) { a = !1; break } a && (f.flags |= ta.FixedPitch); f.defaultWidth = g; f.widths = e; f.defaultVMetrics = k; f.vmetrics = h }, isSerifFont: function (a) { a = a.split("-")[0]; return a in Ya() || -1 !== a.search(/serif/gi) }, getBaseFontMetrics: function (a) { var b = 0, c = [], d = !1, e = ub()[a] || a, g = oa(); e in g || (e = this.isSerifFont(a) ? "Times-Roman" : "Helvetica"); a = g[e]; f(a) ? (b = a, d = !0) : c = a(); return { defaultWidth: b, monospace: d, widths: c } }, buildCharCodeToWidth: function (a, b) { for (var c = Object.create(null), d = b.differences, f = b.defaultEncoding, e = 0; 256 > e; e++) e in d && a[d[e]] ? c[e] = a[d[e]] : e in f && a[f[e]] && (c[e] = a[f[e]]); return c }, preEvaluateFont: function (a, b) { var c = a, f = a.get("Subtype"); n(t(f), "invalid font Subtype"); var e = !1, h; "Type0" === f.name && ((f = a.get("DescendantFonts")) || g("Descendant fonts are not specified"), a = d(f) ? b.fetchIfRef(f[0]) : f, f = a.get("Subtype"), n(t(f), "invalid font Subtype"), e = !0); var k = a.get("FontDescriptor"); if (k) { var l = new sb; h = c.getRaw("Encoding"); if (t(h)) l.update(h.name); else if (x(h)) l.update(h.num + "_" + h.gen); else if (E(h)) for (var m = h.getKeys(), p = 0, q = m.length; p < q; p++) { var r = h.getRaw(m[p]); t(r) ? l.update(r.name) : x(r) ? l.update(r.num + "_" + r.gen) : d(r) && l.update(r.length.toString()) } h = a.get("ToUnicode") || c.get("ToUnicode"); S(h) ? (h = h.str || h, h = h.buffer ? new Uint8Array(h.buffer.buffer, 0, h.bufferLength) : new Uint8Array(h.bytes.buffer, h.start, h.end - h.start), l.update(h)) : t(h) && l.update(h.name); if (h = a.get("Widths") || c.get("Widths")) h = new Uint8Array((new Uint32Array(h)).buffer), l.update(h) } return { descriptor: k, dict: a, baseDict: c, composite: e, type: f.name, hash: l ? l.hexdigest() : "" } }, translateFont: function (a, b) { var c = a.baseDict, d = a.dict, f = a.composite, e = a.descriptor, h = a.type, k = f ? 65535 : 255, l = this.options.cMapOptions, p; if (!e) if ("Type3" === h) e = new V(null), e.set("FontName", T.get(h)), e.set("FontBBox", d.get("FontBBox")); else { var u = d.get("BaseFont"); t(u) || g("Base font is not specified"); var u = u.name.replace(/[,_]/g, "-"), D = this.getBaseFontMetrics(u), l = u.split("-")[0], l = (this.isSerifFont(l) ? ta.Serif : 0) | (D.monospace ? ta.FixedPitch : 0) | (Aa()[l] ? ta.Symbolic : ta.Nonsymbolic); p = { type: h, name: u, widths: D.widths, defaultWidth: D.defaultWidth, flags: l, firstChar: 0, lastChar: k }; return this.extractDataStructures(d, d, b, p).then(function (a) { a.widths = this.buildCharCodeToWidth(D.widths, a); return new da(u, null, a) }.bind(this)) } var w = d.get("FirstChar") || 0, v = d.get("LastChar") || k, y = e.get("FontName"), x = d.get("BaseFont"); q(y) && (y = T.get(y)); q(x) && (x = T.get(x)); if ("Type3" !== h) { var z = y && y.name, B = x && x.name; z !== B && (m("The FontDescriptor's FontName is \"" + z + '" but should be the same as the Font\'s BaseFont "' + B + '"'), z && B && 0 === B.indexOf(z) && (y = x)) } y = y || x; n(t(y), "invalid font name"); var A = e.get("FontFile", "FontFile2", "FontFile3"); if (A && A.dict) { var C = A.dict.get("Subtype"); C && (C = C.name); var G = A.dict.get("Length1"), E = A.dict.get("Length2"), F = A.dict.get("Length3") } p = { type: h, name: y.name, subtype: C, file: A, length1: G, length2: E, length3: F, loadedName: c.loadedName, composite: f, wideChars: f, fixedPitch: !1, fontMatrix: d.get("FontMatrix") || r, firstChar: w || 0, lastChar: v || k, bbox: e.get("FontBBox"), ascent: e.get("Ascent"), descent: e.get("Descent"), xHeight: e.get("XHeight"), capHeight: e.get("CapHeight"), flags: e.get("Flags"), italicAngle: e.get("ItalicAngle"), coded: !1 }; f ? (k = c.get("Encoding"), t(k) && (p.cidEncoding = k.name), k = na.create(k, l, null).then(function (a) { p.cMap = a; p.vertical = p.cMap.vertical })) : k = Promise.resolve(void 0); return k.then(function () { return this.extractDataStructures(d, c, b, p) }.bind(this)).then(function (a) { this.extractWidths(d, b, e, a); "Type3" === h && (a.isType3Font = !0); return new da(y.name, A, a) }.bind(this)) } }; return b }(); var $a = function () { function a(b, c, d) { this.loadedName = b; this.font = c; this.dict = d; this.type3Loaded = null; this.sent = !1 } a.prototype = { send: function (a) { if (!this.sent) { var b = this.font.exportData(); a.send("commonobj", [this.loadedName, "Font", b]); this.sent = !0 } }, loadType3Data: function (a, b, c, d) { n(this.font.isType3Font); if (this.type3Loaded) return this.type3Loaded; var f = this.font, e = Promise.resolve(), g = this.dict.get("CharProcs"), h = this.dict.get("Resources") || b; b = g.getKeys(); for (var k = Object.create(null), l = 0, m = b.length; l < m; ++l) e = e.then(function (b) { var f = g.get(b), e = new ga; return a.getOperatorList(f, d, h, e).then(function () { k[b] = e.getIR(); c.addDependencies(e.dependencies) }, function (a) { U('Type3 font resource "' + b + '" is not available'); a = new ga; k[b] = a.getIR() }) }.bind(this, b[l])); return this.type3Loaded = e.then(function () { f.charProcOperatorList = k }) } }; return a }(), ga = function () { function a(b, c, d) { this.messageHandler = c; this.fnArray = []; this.argsArray = []; this.dependencies = Object.create(null); this._totalLength = 0; this.pageIndex = d; this.intent = b } a.prototype = { get length() { return this.argsArray.length }, get totalLength() { return this._totalLength + this.length }, addOp: function (a, b) { this.fnArray.push(a); this.argsArray.push(b); this.messageHandler && (1E3 <= this.fnArray.length ? this.flush() : 995 <= this.fnArray.length && (a === c.restore || a === c.endText) && this.flush()) }, addDependency: function (a) { a in this.dependencies || (this.dependencies[a] = !0, this.addOp(c.dependency, [a])) }, addDependencies: function (a) { for (var b in a) this.addDependency(b) }, addOpList: function (a) { F.extendObj(this.dependencies, a.dependencies); for (var b = 0, c = a.length; b < c; b++) this.addOp(a.fnArray[b], a.argsArray[b]) }, getIR: function () { return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length } }, flush: function (a) { "oplist" !== this.intent && (new nb).optimize(this); for (var b = [], d = this.fnArray, f = this.argsArray, e = 0, g = this.length; e < g; e++) switch (d[e]) { case c.paintInlineImageXObject: case c.paintInlineImageXObjectGroup: case c.paintImageMaskXObject: var h = f[e][0]; h.cached || b.push(h.data.buffer) } d = this.length; this._totalLength += d; this.messageHandler.send("RenderPageChunk", { operatorList: { fnArray: this.fnArray, argsArray: this.argsArray, lastChunk: a, length: d }, pageIndex: this.pageIndex, intent: this.intent }, b); this.dependencies = Object.create(null); this.fnArray.length = 0; this.argsArray.length = 0 } }; return a }(), Da = function () { function a(b) { this.state = b; this.stateStack = [] } a.prototype = { save: function () { var a = this.state; this.stateStack.push(this.state); this.state = a.clone() }, restore: function () { var a = this.stateStack.pop(); a && (this.state = a) }, transform: function (a) { this.state.ctm = F.transform(this.state.ctm, a) } }; return a }(), Jb = function () { function a() { this.ctm = new Float32Array(P); this.fontSize = 0; this.font = null; this.fontMatrix = r; this.textMatrix = P.slice(); this.textLineMatrix = P.slice(); this.leading = this.wordSpacing = this.charSpacing = 0; this.textHScale = 1; this.textRise = 0 } a.prototype = { setTextMatrix: function (a, b, c, d, f, e) { var g = this.textMatrix; g[0] = a; g[1] = b; g[2] = c; g[3] = d; g[4] = f; g[5] = e }, setTextLineMatrix: function (a, b, c, d, f, e) { var g = this.textLineMatrix; g[0] = a; g[1] = b; g[2] = c; g[3] = d; g[4] = f; g[5] = e }, translateTextMatrix: function (a, b) { var c = this.textMatrix; c[4] = c[0] * a + c[2] * b + c[4]; c[5] = c[1] * a + c[3] * b + c[5] }, translateTextLineMatrix: function (a, b) { var c = this.textLineMatrix; c[4] = c[0] * a + c[2] * b + c[4]; c[5] = c[1] * a + c[3] * b + c[5] }, calcRenderMatrix: function (a) { return F.transform(a, F.transform(this.textMatrix, [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise])) }, carriageReturn: function () { this.translateTextLineMatrix(0, -this.leading); this.textMatrix = this.textLineMatrix.slice() }, clone: function () { var a = Object.create(this); a.textMatrix = this.textMatrix.slice(); a.textLineMatrix = this.textLineMatrix.slice(); a.fontMatrix = this.fontMatrix.slice(); return a } }; return a }(), mb = function () { function a() { this.ctm = new Float32Array(P); this.font = null; this.textRenderingMode = C.FILL; this.strokeColorSpace = this.fillColorSpace = Y.singletons.gray } a.prototype = { clone: function () { return Object.create(this) } }; return a }(), ba = function () { function a(c, d, f) { this.opMap = b(); this.parser = new W(new D(c, this.opMap), !1, d); this.stateManager = f; this.nonProcessedArgs = [] } var b = w(function (a) { a.w = { id: c.setLineWidth, numArgs: 1, variableArgs: !1 }; a.J = { id: c.setLineCap, numArgs: 1, variableArgs: !1 }; a.j = { id: c.setLineJoin, numArgs: 1, variableArgs: !1 }; a.M = { id: c.setMiterLimit, numArgs: 1, variableArgs: !1 }; a.d = { id: c.setDash, numArgs: 2, variableArgs: !1 }; a.ri = { id: c.setRenderingIntent, numArgs: 1, variableArgs: !1 }; a.i = { id: c.setFlatness, numArgs: 1, variableArgs: !1 }; a.gs = { id: c.setGState, numArgs: 1, variableArgs: !1 }; a.q = { id: c.save, numArgs: 0, variableArgs: !1 }; a.Q = { id: c.restore, numArgs: 0, variableArgs: !1 }; a.cm = { id: c.transform, numArgs: 6, variableArgs: !1 }; a.m = { id: c.moveTo, numArgs: 2, variableArgs: !1 }; a.l = { id: c.lineTo, numArgs: 2, variableArgs: !1 }; a.c = { id: c.curveTo, numArgs: 6, variableArgs: !1 }; a.v = { id: c.curveTo2, numArgs: 4, variableArgs: !1 }; a.y = { id: c.curveTo3, numArgs: 4, variableArgs: !1 }; a.h = { id: c.closePath, numArgs: 0, variableArgs: !1 }; a.re = { id: c.rectangle, numArgs: 4, variableArgs: !1 }; a.S = { id: c.stroke, numArgs: 0, variableArgs: !1 }; a.s = { id: c.closeStroke, numArgs: 0, variableArgs: !1 }; a.f = { id: c.fill, numArgs: 0, variableArgs: !1 }; a.F = { id: c.fill, numArgs: 0, variableArgs: !1 }; a["f*"] = { id: c.eoFill, numArgs: 0, variableArgs: !1 }; a.B = { id: c.fillStroke, numArgs: 0, variableArgs: !1 }; a["B*"] = { id: c.eoFillStroke, numArgs: 0, variableArgs: !1 }; a.b = { id: c.closeFillStroke, numArgs: 0, variableArgs: !1 }; a["b*"] = { id: c.closeEOFillStroke, numArgs: 0, variableArgs: !1 }; a.n = { id: c.endPath, numArgs: 0, variableArgs: !1 }; a.W = { id: c.clip, numArgs: 0, variableArgs: !1 }; a["W*"] = { id: c.eoClip, numArgs: 0, variableArgs: !1 }; a.BT = { id: c.beginText, numArgs: 0, variableArgs: !1 }; a.ET = { id: c.endText, numArgs: 0, variableArgs: !1 }; a.Tc = { id: c.setCharSpacing, numArgs: 1, variableArgs: !1 }; a.Tw = { id: c.setWordSpacing, numArgs: 1, variableArgs: !1 }; a.Tz = { id: c.setHScale, numArgs: 1, variableArgs: !1 }; a.TL = { id: c.setLeading, numArgs: 1, variableArgs: !1 }; a.Tf = { id: c.setFont, numArgs: 2, variableArgs: !1 }; a.Tr = { id: c.setTextRenderingMode, numArgs: 1, variableArgs: !1 }; a.Ts = { id: c.setTextRise, numArgs: 1, variableArgs: !1 }; a.Td = { id: c.moveText, numArgs: 2, variableArgs: !1 }; a.TD = { id: c.setLeadingMoveText, numArgs: 2, variableArgs: !1 }; a.Tm = { id: c.setTextMatrix, numArgs: 6, variableArgs: !1 }; a["T*"] = { id: c.nextLine, numArgs: 0, variableArgs: !1 }; a.Tj = { id: c.showText, numArgs: 1, variableArgs: !1 }; a.TJ = { id: c.showSpacedText, numArgs: 1, variableArgs: !1 }; a["'"] = { id: c.nextLineShowText, numArgs: 1, variableArgs: !1 }; a['"'] = { id: c.nextLineSetSpacingShowText, numArgs: 3, variableArgs: !1 }; a.d0 = { id: c.setCharWidth, numArgs: 2, variableArgs: !1 }; a.d1 = { id: c.setCharWidthAndBounds, numArgs: 6, variableArgs: !1 }; a.CS = { id: c.setStrokeColorSpace, numArgs: 1, variableArgs: !1 }; a.cs = { id: c.setFillColorSpace, numArgs: 1, variableArgs: !1 }; a.SC = { id: c.setStrokeColor, numArgs: 4, variableArgs: !0 }; a.SCN = { id: c.setStrokeColorN, numArgs: 33, variableArgs: !0 }; a.sc = { id: c.setFillColor, numArgs: 4, variableArgs: !0 }; a.scn = { id: c.setFillColorN, numArgs: 33, variableArgs: !0 }; a.G = { id: c.setStrokeGray, numArgs: 1, variableArgs: !1 }; a.g = { id: c.setFillGray, numArgs: 1, variableArgs: !1 }; a.RG = { id: c.setStrokeRGBColor, numArgs: 3, variableArgs: !1 }; a.rg = { id: c.setFillRGBColor, numArgs: 3, variableArgs: !1 }; a.K = { id: c.setStrokeCMYKColor, numArgs: 4, variableArgs: !1 }; a.k = { id: c.setFillCMYKColor, numArgs: 4, variableArgs: !1 }; a.sh = { id: c.shadingFill, numArgs: 1, variableArgs: !1 }; a.BI = { id: c.beginInlineImage, numArgs: 0, variableArgs: !1 }; a.ID = { id: c.beginImageData, numArgs: 0, variableArgs: !1 }; a.EI = { id: c.endInlineImage, numArgs: 1, variableArgs: !1 }; a.Do = { id: c.paintXObject, numArgs: 1, variableArgs: !1 }; a.MP = { id: c.markPoint, numArgs: 1, variableArgs: !1 }; a.DP = { id: c.markPointProps, numArgs: 2, variableArgs: !1 }; a.BMC = { id: c.beginMarkedContent, numArgs: 1, variableArgs: !1 }; a.BDC = { id: c.beginMarkedContentProps, numArgs: 2, variableArgs: !1 }; a.EMC = { id: c.endMarkedContent, numArgs: 0, variableArgs: !1 }; a.BX = { id: c.beginCompat, numArgs: 0, variableArgs: !1 }; a.EX = { id: c.endCompat, numArgs: 0, variableArgs: !1 }; a.BM = null; a.BD = null; a["true"] = null; a.fa = null; a.fal = null; a.fals = null; a["false"] = null; a.nu = null; a.nul = null; a["null"] = null }); a.prototype = { get savedStatesDepth() { return this.stateManager.stateStack.length }, read: function (a) { for (var b = a.args; ;) { var c = this.parser.getObj(); if (B(c)) { var d = c.cmd; if (c = this.opMap[d]) { var d = c.id, f = c.numArgs, e = null !== b ? b.length : 0; if (c.variableArgs) e > f && m("Command " + d + ": expected [0," + f + "] args, but received " + e + " args"); else { if (e !== f) { for (c = this.nonProcessedArgs; e > f;) c.push(b.shift()), e--; for (; e < f && 0 !== c.length;) b || (b = []), b.unshift(c.pop()), e++ } if (e < f) { m("Command " + d + ": because expected " + f + " args, but received " + e + " args; skipping"); b = null; continue } } this.preprocessCommand(d, b); a.fn = d; a.args = b; return !0 } U('Unknown command "' + d + '"') } else { if (eb(c)) return !1; null !== c && (b || (b = []), b.push(c), n(33 >= b.length, "Too many arguments")) } } }, preprocessCommand: function (a, b) { switch (a | 0) { case c.save: this.stateManager.save(); break; case c.restore: this.stateManager.restore(); break; case c.transform: this.stateManager.transform(b) } } }; return a }(), nb = function () { function a(b, c, d) { for (var f = 0, e = c.length - 1; f < e; f++) { var g = c[f]; b = b[g] || (b[g] = []) } b[c[c.length - 1]] = d } function b() { } var d = []; a(d, [c.save, c.transform, c.paintInlineImageXObject, c.restore], function (a) { var b = a.fnArray, d = a.argsArray, f = a.iCurr; a = f - 3; for (var e = f - 2, f = f - 1, g = a + 4, k = b.length; g + 3 < k && b[g] === c.save && b[g + 1] === c.transform && b[g + 2] === c.paintInlineImageXObject && b[g + 3] === c.restore;) g += 4; k = Math.min((g - a) / 4, 200); if (10 > k) return g; var l = 0, g = [], m = 0, n = 1, p = 1, q; for (q = 0; q < k; q++) { var r = d[e + (q << 2)], u = d[f + (q << 2)][0]; 1E3 < n + u.width && (l = Math.max(l, n), p += m + 2, m = n = 0); g.push({ transform: r, x: n, y: p, w: u.width, h: u.height }); n += u.width + 2; m = Math.max(m, u.height) } e = Math.max(l, n) + 1; m = p + m + 1; p = new Uint8Array(e * m * 4); l = e << 2; for (q = 0; q < k; q++) { var n = d[f + (q << 2)][0].data, r = g[q].w << 2, u = 0, t = g[q].x + g[q].y * e << 2; p.set(n.subarray(0, r), t - l); for (var D = 0, w = g[q].h; D < w; D++) p.set(n.subarray(u, u + r), t), u += r, t += l; for (p.set(n.subarray(u - r, u), t) ; 0 <= t;) n[t - 4] = n[t], n[t - 3] = n[t + 1], n[t - 2] = n[t + 2], n[t - 1] = n[t + 3], n[t + r] = n[t + r - 4], n[t + r + 1] = n[t + r - 3], n[t + r + 2] = n[t + r - 2], n[t + r + 3] = n[t + r - 1], t -= l } b.splice(a, 4 * k, c.paintInlineImageXObjectGroup); d.splice(a, 4 * k, [{ width: e, height: m, kind: h.RGBA_32BPP, data: p }, g]); return a + 1 }); a(d, [c.save, c.transform, c.paintImageMaskXObject, c.restore], function (a) { var b = a.fnArray, d = a.argsArray, f = a.iCurr; a = f - 3; for (var e = f - 2, f = f - 1, g = a + 4, h = b.length; g + 3 < h && b[g] === c.save && b[g + 1] === c.transform && b[g + 2] === c.paintImageMaskXObject && b[g + 3] === c.restore;) g += 4; for (var h = (g - a) / 4, k = a + 2, l = 0; l < h; l++) { var m = d[k + 4 * l]; if ((m = 1 === m.length && m[0]) && 1 === m.width && 1 === m.height && (!m.data.length || 1 === m.data.length && 0 === m.data[0])) b[k + 4 * l] = c.paintSolidColorImageMask; else break } h -= l; if (10 > h) return g; var n = !1, m = d[f][0]; if (0 === d[e][1] && 0 === d[e][2]) for (var n = !0, p = d[e][0], q = d[e][3], l = e + 4, r = f + 4, g = 1; g < h; g++, l += 4, r += 4) if (k = d[l], d[r][0] !== m || k[0] !== p || 0 !== k[1] || 0 !== k[2] || k[3] !== q) { 10 > g ? n = !1 : h = g; break } if (n) { h = Math.min(h, 1E3); f = new Float32Array(2 * h); l = e; for (g = 0; g < h; g++, l += 4) k = d[l], f[g << 1] = k[4], f[(g << 1) + 1] = k[5]; b.splice(a, 4 * h, c.paintImageMaskXObjectRepeat); d.splice(a, 4 * h, [m, p, q, f]) } else { h = Math.min(h, 100); p = []; for (g = 0; g < h; g++) k = d[e + (g << 2)], q = d[f + (g << 2)][0], p.push({ data: q.data, width: q.width, height: q.height, transform: k }); b.splice(a, 4 * h, c.paintImageMaskXObjectGroup); d.splice(a, 4 * h, [p]) } return a + 1 }); a(d, [c.save, c.transform, c.paintImageXObject, c.restore], function (a) { var b = a.fnArray, d = a.argsArray, f = a.iCurr; a = f - 3; var e = f - 2; if (0 !== d[e][1] || 0 !== d[e][2]) return f + 1; for (var f = d[f - 1][0], g = d[e][0], h = d[e][3], k = a + 4, l = b.length; k + 3 < l && b[k] === c.save && b[k + 1] === c.transform && b[k + 2] === c.paintImageXObject && b[k + 3] === c.restore && d[k + 1][0] === g && 0 === d[k + 1][1] && 0 === d[k + 1][2] && d[k + 1][3] === h && d[k + 2][0] === f;) k += 4; l = Math.min((k - a) / 4, 1E3); if (3 > l) return k; for (var k = new Float32Array(2 * l), m = 0; m < l; m++, e += 4) { var n = d[e]; k[m << 1] = n[4]; k[(m << 1) + 1] = n[5] } f = [f, g, h, k]; b.splice(a, 4 * l, c.paintImageXObjectRepeat); d.splice(a, 4 * l, f); return a + 1 }); a(d, [c.beginText, c.setFont, c.setTextMatrix, c.showText, c.endText], function (a) { var b = a.fnArray, d = a.argsArray, f = a.iCurr, e = f - 4, g = f - 3, h = d[g][0], k = d[g][1], l = e + 5; for (a = b.length; l + 4 < a && b[l] === c.beginText && b[l + 1] === c.setFont && b[l + 2] === c.setTextMatrix && b[l + 3] === c.showText && b[l + 4] === c.endText && d[l + 1][0] === h && d[l + 1][1] === k;) l += 5; a = Math.min((l - e) / 5, 1E3); if (3 > a) return l; l = e; 4 <= e && b[e - 4] === b[g] && b[e - 3] === b[f - 2] && b[e - 2] === b[f - 1] && b[e - 1] === b[f] && d[e - 4][0] === h && d[e - 4][1] === k && (a++, l -= 5); f = l + 4; for (e = 1; e < a; e++) b.splice(f, 3), d.splice(f, 3), f += 2; return f + 1 }); b.prototype = { optimize: function (a) { var b = a.fnArray; a = { iCurr: 0, fnArray: b, argsArray: a.argsArray }; for (var c, f = 0, e = b.length; f < e;) c = (c || d)[b[f]], "function" === typeof c ? (a.iCurr = f, f = c(a), c = void 0, e = a.fnArray.length) : f++ } }; return b }(); e.OperatorList = ga; e.PartialEvaluator = l }); (function (e, l) { l(e.pdfjsCoreAnnotation = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream, e.pdfjsCoreColorSpace, e.pdfjsCoreObj, e.pdfjsCoreEvaluator) })(this, function (e, l, R, O, a, b, L) { function Q() { } var k = l.AnnotationBorderStyleType, I = l.AnnotationFlag, X = l.AnnotationType, N = l.OPS, u = l.Util, G = l.isBool, M = l.isString, K = l.isArray, J = l.isInt, v = l.isValidUrl, r = l.stringToBytes, P = l.stringToPDFString, H = l.stringToUTF8String, h = l.warn, c = R.Dict, C = R.isDict, F = R.isName, n = O.Stream, A = a.ColorSpace, g = b.ObjectLoader, m = b.FileSpec, d = L.OperatorList; Q.prototype = { create: function (a, b) { var c = a.fetchIfRef(b); if (C(c)) { var d = c.get("Subtype"), d = F(d) ? d.name : "", e = { xref: a, dict: c, ref: b }; switch (d) { case "Link": return new T(e); case "Text": return new V(e); case "Widget": return c = u.getInheritableProperty(c, "FT"), F(c) && "Tx" === c.name ? new U(e) : new w(e); case "Popup": return new B(e); case "Highlight": return new E(e); case "Underline": return new t(e); case "Squiggly": return new x(e); case "StrikeOut": return new S(e); case "FileAttachment": return new z(e); default: return h('Unimplemented annotation type "' + d + '", falling back to base annotation'), new f(e) } } } }; var f = function () { function a(b, c, d) { var f = u.getAxialAlignedBoundingBox(c, d); c = f[0]; d = f[1]; var e = f[2], f = f[3]; if (c === e || d === f) return [1, 0, 0, 1, b[0], b[1]]; e = (b[2] - b[0]) / (e - c); f = (b[3] - b[1]) / (f - d); return [e, 0, 0, f, b[0] - c * e, b[1] - d * f] } function b(a) { var c = a.dict; this.setFlags(c.get("F")); this.setRectangle(c.getArray("Rect")); this.setColor(c.get("C")); this.setBorderStyle(c); var d; var f = c.get("AP"); if (C(f)) if (f = f.get("N"), C(f)) { var e = c.get("AS"); e && f.has(e.name) && (d = f.get(e.name)) } else d = f; else d = void 0; this.appearance = d; this.data = {}; this.data.id = a.ref.toString(); this.data.subtype = c.get("Subtype").name; this.data.annotationFlags = this.flags; this.data.rect = this.rectangle; this.data.color = this.color; this.data.borderStyle = this.borderStyle; this.data.hasAppearance = !!this.appearance } b.prototype = { get viewable() { return this.flags ? !this.hasFlag(I.INVISIBLE) && !this.hasFlag(I.HIDDEN) && !this.hasFlag(I.NOVIEW) : !0 }, get printable() { return this.flags ? this.hasFlag(I.PRINT) && !this.hasFlag(I.INVISIBLE) && !this.hasFlag(I.HIDDEN) : !1 }, setFlags: function (a) { J(a) ? this.flags = a : this.flags = 0 }, hasFlag: function (a) { return this.flags ? 0 < (this.flags & a) : !1 }, setRectangle: function (a) { K(a) && 4 === a.length ? this.rectangle = u.normalizeRect(a) : this.rectangle = [0, 0, 0, 0] }, setColor: function (a) { var b = new Uint8Array(3); if (K(a)) switch (a.length) { case 0: this.color = null; break; case 1: A.singletons.gray.getRgbItem(a, 0, b, 0); this.color = b; break; case 3: A.singletons.rgb.getRgbItem(a, 0, b, 0); this.color = b; break; case 4: A.singletons.cmyk.getRgbItem(a, 0, b, 0); this.color = b; break; default: this.color = b } else this.color = b }, setBorderStyle: function (a) { this.borderStyle = new q; if (C(a)) if (a.has("BS")) { a = a.get("BS"); var b; if (!a.has("Type") || F(b = a.get("Type")) && "Border" === b.name) this.borderStyle.setWidth(a.get("W")), this.borderStyle.setStyle(a.get("S")), this.borderStyle.setDashArray(a.get("D")) } else a.has("Border") ? (b = a.get("Border"), K(b) && 3 <= b.length && (this.borderStyle.setHorizontalCornerRadius(b[0]), this.borderStyle.setVerticalCornerRadius(b[1]), this.borderStyle.setWidth(b[2]), 4 === b.length && this.borderStyle.setDashArray(b[3]))) : this.borderStyle.setWidth(0) }, _preparePopup: function (a) { a.has("C") || (this.data.color = null); this.data.hasPopup = a.has("Popup"); this.data.title = P(a.get("T") || ""); this.data.contents = P(a.get("Contents") || "") }, loadResources: function (a) { return new Promise(function (b, c) { this.appearance.dict.getAsync("Resources").then(function (d) { d ? (new g(d.map, a, d.xref)).load().then(function () { b(d) }, c) : b() }, c) }.bind(this)) }, getOperatorList: function (b, c) { if (!this.appearance) return Promise.resolve(new d); var f = this.data, e = this.appearance.dict, g = this.loadResources("ExtGState ColorSpace Pattern Shading XObject Font".split(" ")), h = e.get("BBox") || [0, 0, 1, 1], k = e.get("Matrix") || [1, 0, 0, 1, 0, 0], l = a(f.rect, h, k), m = this; return g.then(function (a) { var e = new d; e.addOp(N.beginAnnotation, [f.rect, l, k]); return b.getOperatorList(m.appearance, c, a, e).then(function () { e.addOp(N.endAnnotation, []); m.appearance.reset(); return e }) }) } }; b.appendToOperatorList = function (a, b, c, d, f) { for (var e = [], g = 0, h = a.length; g < h; ++g) ("display" === f && a[g].viewable || "print" === f && a[g].printable) && e.push(a[g].getOperatorList(c, d)); return Promise.all(e).then(function (a) { b.addOp(N.beginAnnotations, []); for (var c = 0, d = a.length; c < d; ++c) b.addOpList(a[c]); b.addOp(N.endAnnotations, []) }) }; return b }(), q = function () { function a() { this.width = 1; this.style = k.SOLID; this.dashArray = [3]; this.verticalCornerRadius = this.horizontalCornerRadius = 0 } a.prototype = { setWidth: function (a) { a === (a | 0) && (this.width = a) }, setStyle: function (a) { if (a) switch (a.name) { case "S": this.style = k.SOLID; break; case "D": this.style = k.DASHED; break; case "B": this.style = k.BEVELED; break; case "I": this.style = k.INSET; break; case "U": this.style = k.UNDERLINE } }, setDashArray: function (a) { if (K(a) && 0 < a.length) { for (var b = !0, c = !0, d = 0, f = a.length; d < f; d++) { var e = a[d]; if (0 <= +e) 0 < e && (c = !1); else { b = !1; break } } b && !c ? this.dashArray = a : this.width = 0 } else a && (this.width = 0) }, setHorizontalCornerRadius: function (a) { a === (a | 0) && (this.horizontalCornerRadius = a) }, setVerticalCornerRadius: function (a) { a === (a | 0) && (this.verticalCornerRadius = a) } }; return a }(), w = function () { function a(b) { f.call(this, b); var d = b.dict, e = this.data; e.annotationType = X.WIDGET; e.fieldValue = P(u.getInheritableProperty(d, "V") || ""); e.alternativeText = P(d.get("TU") || ""); e.defaultAppearance = u.getInheritableProperty(d, "DA") || ""; var g = u.getInheritableProperty(d, "FT"); e.fieldType = F(g) ? g.name : ""; e.fieldFlags = u.getInheritableProperty(d, "Ff") || 0; this.fieldResources = u.getInheritableProperty(d, "DR") || c.empty; "Sig" === e.fieldType && (h("unimplemented annotation type: Widget signature"), this.setFlags(I.HIDDEN)); var g = [], k = d; for (b = b.ref; k;) { var d = k.get("Parent"), l = k.getRaw("Parent"); if (k = k.get("T")) g.unshift(P(k)); else if (d && b) { var k = d.get("Kids"), m, n; m = 0; for (n = k.length; m < n; m++) { var q = k[m]; if (q.num === b.num && q.gen === b.gen) break } g.unshift("`" + m) } k = d; b = l } e.fullName = g.join(".") } u.inherit(a, f, {}); return a }(), U = function () { function a(b) { w.call(this, b); this.data.textAlignment = u.getInheritableProperty(b.dict, "Q") } u.inherit(a, w, { getOperatorList: function (a, b) { if (this.appearance) return f.prototype.getOperatorList.call(this, a, b); var c = new d, e = this.data; if (!e.defaultAppearance) return Promise.resolve(c); e = new n(r(e.defaultAppearance)); return a.getOperatorList(e, b, this.fieldResources, c).then(function () { return c }) } }); return a }(), V = function () { function a(b) { f.call(this, b); this.data.annotationType = X.TEXT; this.data.hasAppearance ? this.data.name = "NoIcon" : (this.data.rect[1] = this.data.rect[3] - 22, this.data.rect[2] = this.data.rect[0] + 22, this.data.name = b.dict.has("Name") ? b.dict.get("Name").name : "Note"); this._preparePopup(b.dict) } u.inherit(a, f, {}); return a }(), T = function () { function a(b) { f.call(this, b); var c = b.dict; b = this.data; b.annotationType = X.LINK; var d = c.get("A"), e, g; if (d && C(d)) switch (c = d.get("S").name, c) { case "URI": e = d.get("URI"); F(e) ? e = "/" + e.name : e && (e = M(e) && 0 === e.indexOf("www.") ? "http://" + e : e); break; case "GoTo": g = d.get("D"); break; case "GoToR": c = d.get("F"); C(c) ? e = c.get("F") || null : M(c) && (e = c); if (c = d.get("D")) F(c) && (c = c.name), M(c) && M(e) && (e = e.split("#")[0] + "#" + c); d = d.get("NewWindow"); G(d) && (b.newWindow = d); break; case "Named": b.action = d.get("N").name; break; default: h("unrecognized link type: " + c) } else c.has("Dest") && (g = c.get("Dest")); if (e && v(e, !1)) { var k; try { k = H(e) } catch (l) { k = e } b.url = k } g && (b.dest = F(g) ? g.name : g) } u.inherit(a, f, {}); return a }(), B = function () { function a(b) { f.call(this, b); this.data.annotationType = X.POPUP; b = b.dict; var c = b.get("Parent"); c ? (this.data.parentId = b.getRaw("Parent").toString(), this.data.title = P(c.get("T") || ""), this.data.contents = P(c.get("Contents") || ""), c.has("C") ? (this.setColor(c.get("C")), this.data.color = this.color) : this.data.color = null) : h("Popup annotation has a missing or invalid parent annotation.") } u.inherit(a, f, {}); return a }(), E = function () { function a(b) { f.call(this, b); this.data.annotationType = X.HIGHLIGHT; this._preparePopup(b.dict); this.data.borderStyle.setWidth(0) } u.inherit(a, f, {}); return a }(), t = function () { function a(b) { f.call(this, b); this.data.annotationType = X.UNDERLINE; this._preparePopup(b.dict); this.data.borderStyle.setWidth(0) } u.inherit(a, f, {}); return a }(), x = function () { function a(b) { f.call(this, b); this.data.annotationType = X.SQUIGGLY; this._preparePopup(b.dict); this.data.borderStyle.setWidth(0) } u.inherit(a, f, {}); return a }(), S = function () { function a(b) { f.call(this, b); this.data.annotationType = X.STRIKEOUT; this._preparePopup(b.dict); this.data.borderStyle.setWidth(0) } u.inherit(a, f, {}); return a }(), z = function () { function a(b) { f.call(this, b); var c = new m(b.dict.get("FS"), b.xref); this.data.annotationType = X.FILEATTACHMENT; this.data.file = c.serializable; this._preparePopup(b.dict) } u.inherit(a, f, {}); return a }(); e.Annotation = f; e.AnnotationBorderStyle = q; e.AnnotationFactory = Q }); (function (e, l) { l(e.pdfjsCoreDocument = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCoreStream, e.pdfjsCoreObj, e.pdfjsCoreParser, e.pdfjsCoreCrypto, e.pdfjsCoreEvaluator, e.pdfjsCoreAnnotation) })(this, function (e, l, R, O, a, b, L, Q, k) { var I = l.MissingDataException, X = l.Util, N = l.assert, u = l.error, G = l.info, M = l.isArray, K = l.isArrayBuffer, J = l.isString, v = l.shadow, r = l.stringToBytes, P = l.stringToPDFString, H = l.warn, h = R.Dict, c = R.isDict, C = R.isName, F = R.isStream, n = O.NullStream, A = O.Stream, g = O.StreamsSequenceStream, m = a.Catalog, d = a.ObjectLoader, f = a.XRef, q = b.Lexer, w = b.Linearization, U = L.calculateMD5, V = Q.OperatorList, T = Q.PartialEvaluator, B = k.Annotation, E = k.AnnotationFactory, t = function () { function a(b, c, d, f, e, g) { this.pdfManager = b; this.pageIndex = d; this.pageDict = f; this.xref = c; this.ref = e; this.fontCache = g; this.idCounters = { obj: 0 }; this.evaluatorOptions = b.evaluatorOptions; this.resourcesPromise = null } var b = [0, 0, 612, 792]; a.prototype = { getPageProp: function (a) { return this.pageDict.get(a) }, getInheritedPageProp: function (a) { for (var b = this.pageDict, d = null, f = 0; b;) { var e = b.get(a); e && (d || (d = []), d.push(e)); if (100 < ++f) { H("Page_getInheritedPageProp: maximum loop count exceeded."); break } b = b.get("Parent") } return d ? 1 === d.length || !c(d[0]) || 100 < f ? d[0] : h.merge(this.xref, d) : h.empty }, get content() { return this.getPageProp("Contents") }, get resources() { return v(this, "resources", this.getInheritedPageProp("Resources")) }, get mediaBox() { var a = this.getInheritedPageProp("MediaBox"); M(a) && 4 === a.length || (a = b); return v(this, "mediaBox", a) }, get view() { var a = this.mediaBox, b = this.getInheritedPageProp("CropBox"); return M(b) && 4 === b.length ? (b = X.intersect(b, a)) ? v(this, "view", b) : v(this, "view", a) : v(this, "view", a) }, get rotate() { var a = this.getInheritedPageProp("Rotate") || 0; 0 !== a % 90 ? a = 0 : 360 <= a ? a %= 360 : 0 > a && (a = (a % 360 + 360) % 360); return v(this, "rotate", a) }, getContentStream: function () { var a = this.content; if (M(a)) { var b = this.xref, c, d = a.length, f = []; for (c = 0; c < d; ++c) f.push(b.fetchIfRef(a[c])); a = new g(f) } else a = F(a) ? a : new n; return a }, loadResources: function (a) { this.resourcesPromise || (this.resourcesPromise = this.pdfManager.ensure(this, "resources")); return this.resourcesPromise.then(function () { return (new d(this.resources.map, a, this.xref)).load() }.bind(this)) }, getOperatorList: function (a, b, c) { var d = this, f = this.pdfManager, e = f.ensure(this, "getContentStream", []), g = this.loadResources("ExtGState ColorSpace Pattern Shading XObject Font".split(" ")), h = new T(f, this.xref, a, this.pageIndex, "p" + this.pageIndex + "_", this.idCounters, this.fontCache, this.evaluatorOptions), e = Promise.all([e, g]).then(function (f) { f = f[0]; var e = new V(c, a, d.pageIndex); a.send("StartRenderPage", { transparency: h.hasBlendModes(d.resources), pageIndex: d.pageIndex, intent: c }); return h.getOperatorList(f, b, d.resources, e).then(function () { return e }) }), f = f.ensure(this, "annotations"); return Promise.all([e, f]).then(function (a) { var d = a[0]; a = a[1]; return 0 === a.length ? (d.flush(!0), d) : B.appendToOperatorList(a, d, h, b, c).then(function () { d.flush(!0); return d }) }) }, extractTextContent: function (a, b) { var c = { on: function () { }, send: function () { } }, d = this, f = this.pdfManager, e = f.ensure(this, "getContentStream", []), g = this.loadResources(["ExtGState", "XObject", "Font"]); return Promise.all([e, g]).then(function (e) { e = e[0]; return (new T(f, d.xref, c, d.pageIndex, "p" + d.pageIndex + "_", d.idCounters, d.fontCache, d.evaluatorOptions)).getTextContent(e, a, d.resources, null, b) }) }, getAnnotationsData: function (a) { for (var b = this.annotations, c = [], d = 0, f = b.length; d < f; ++d) (!a || "display" === a && b[d].viewable || "print" === a && b[d].printable) && c.push(b[d].data); return c }, get annotations() { for (var a = [], b = this.getInheritedPageProp("Annots") || [], c = new E, d = 0, f = b.length; d < f; ++d) { var e = c.create(this.xref, b[d]); e && a.push(e) } return v(this, "annotations", a) } }; return a }(); l = function () { function a(c, d, f) { F(d) ? b.call(this, c, d, f) : K(d) ? b.call(this, c, new A(d), f) : u("PDFDocument: Unknown argument type") } function b(a, c, d) { N(0 < c.length, "stream must have data"); this.pdfManager = a; this.stream = c; this.xref = new f(this.stream, d, a) } function c(a, b, d, f) { var e = a.pos, g = a.end, h = []; e + d > g && (d = g - e); for (g = 0; g < d; ++g) h.push(String.fromCharCode(a.getByte())); d = h.join(""); a.pos = e; b = f ? d.lastIndexOf(b) : d.indexOf(b); if (-1 === b) return !1; a.pos += b; return !0 } var d = { get entries() { return v(this, "entries", { Title: J, Author: J, Subject: J, Keywords: J, Creator: J, Producer: J, CreationDate: J, ModDate: J, Trapped: C }) } }; a.prototype = { parse: function (a) { this.setup(a); a = this.catalog.catDict.get("Version"); C(a) && (this.pdfFormatVersion = a.name); try { if (this.acroForm = this.catalog.catDict.get("AcroForm")) { this.xfa = this.acroForm.get("XFA"); var b = this.acroForm.get("Fields"); b && M(b) && 0 !== b.length || this.xfa || (this.acroForm = null) } } catch (c) { G("Something wrong with AcroForm entry"), this.acroForm = null } }, get linearization() { var a = null; if (this.stream.length) try { a = w.create(this.stream) } catch (b) { if (b instanceof I) throw b; G(b) } return v(this, "linearization", a) }, get startXRef() { var a = this.stream, b = 0; if (this.linearization) a.reset(), c(a, "endobj", 1024) && (b = a.pos + 6); else { for (var d = !1, f = a.end; !d && 0 < f;) f -= 1015, 0 > f && (f = 0), a.pos = f, d = c(a, "startxref", 1024, !0); if (d) { a.skip(9); do b = a.getByte(); while (q.isSpace(b)); for (d = ""; 32 <= b && 57 >= b;) d += String.fromCharCode(b), b = a.getByte(); b = parseInt(d, 10); isNaN(b) && (b = 0) } } return v(this, "startXRef", b) }, get mainXRefEntriesOffset() { var a = 0, b = this.linearization; b && (a = b.mainXRefEntriesOffset); return v(this, "mainXRefEntriesOffset", a) }, checkHeader: function () { var a = this.stream; a.reset(); if (c(a, "%PDF-", 1024)) { a.moveStart(); for (var b = "", d; 32 < (d = a.getByte()) && !(12 <= b.length) ;) b += String.fromCharCode(d); this.pdfFormatVersion || (this.pdfFormatVersion = b.substring(5)) } }, parseStartXRef: function () { this.xref.setStartXRef(this.startXRef) }, setup: function (a) { this.xref.parse(a); var b = this; this.catalog = new m(this.pdfManager, this.xref, { createPage: function (a, c, d, f) { return new t(b.pdfManager, b.xref, a, c, d, f) } }) }, get numPages() { var a = this.linearization; return v(this, "numPages", a ? a.numPages : this.catalog.numPages) }, get documentInfo() { var a = { PDFFormatVersion: this.pdfFormatVersion, IsAcroFormPresent: !!this.acroForm, IsXFAPresent: !!this.xfa }, b; try { b = this.xref.trailer.get("Info") } catch (c) { G("The document information dictionary is invalid.") } if (b) { var f = d.entries, e; for (e in f) if (b.has(e)) { var g = b.get(e); f[e](g) ? a[e] = "string" !== typeof g ? g : P(g) : G('Bad value in document info for "' + e + '"') } } return v(this, "documentInfo", a) }, get fingerprint() { var a, b = ""; (a = this.xref.trailer.get("ID")) && M(a) && a[0] && J(a[0]) && "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" !== a[0] ? a = r(a[0]) : (this.stream.ensureRange && this.stream.ensureRange(0, Math.min(1024, this.stream.end)), a = U(this.stream.bytes.subarray(0, 1024), 0, 1024)); for (var c = 0, d = a.length; c < d; c++) var f = a[c].toString(16), b = b + (1 === f.length ? "0" + f : f); return v(this, "fingerprint", b) }, getPage: function (a) { return this.catalog.getPage(a) }, cleanup: function () { return this.catalog.cleanup() } }; return a }(); e.Page = t; e.PDFDocument = l }); (function (e, l) { l(e.pdfjsCorePdfManager = {}, e.pdfjsSharedUtil, e.pdfjsCoreStream, e.pdfjsCoreChunkedStream, e.pdfjsCoreDocument) })(this, function (e, l, R, O, a) { var b = l.NotImplementedException, L = l.MissingDataException, Q = l.createPromiseCapability, k = l.Util, I = R.Stream, X = O.ChunkedStreamManager, N = a.PDFDocument, u = function () { function a() { throw Error("Cannot initialize BaseManagerManager"); } a.prototype = { get docId() { return this._docId }, onLoadedStream: function () { throw new b; }, ensureDoc: function (a, b) { return this.ensure(this.pdfDocument, a, b) }, ensureXRef: function (a, b) { return this.ensure(this.pdfDocument.xref, a, b) }, ensureCatalog: function (a, b) { return this.ensure(this.pdfDocument.catalog, a, b) }, getPage: function (a) { return this.pdfDocument.getPage(a) }, cleanup: function () { return this.pdfDocument.cleanup() }, ensure: function (a, e, k) { return new b }, requestRange: function (a, e) { return new b }, requestLoadedStream: function () { return new b }, sendProgressiveData: function (a) { return new b }, updatePassword: function (a) { this.pdfDocument.xref.password = this.password = a; this._passwordChangedCapability && this._passwordChangedCapability.resolve() }, passwordChanged: function () { this._passwordChangedCapability = Q(); return this._passwordChangedCapability.promise }, terminate: function () { return new b } }; return a }(); l = function () { function a(b, e, k, l) { this._docId = b; this.evaluatorOptions = l; b = new I(e); this.pdfDocument = new N(this, b, k); this._loadedStreamCapability = Q(); this._loadedStreamCapability.resolve(b) } k.inherit(a, u, { ensure: function (a, b, e) { return new Promise(function (k, l) { try { var u = a[b], G; G = "function" === typeof u ? u.apply(a, e) : u; k(G) } catch (h) { l(h) } }) }, requestRange: function (a, b) { return Promise.resolve() }, requestLoadedStream: function () { }, onLoadedStream: function () { return this._loadedStreamCapability.promise }, terminate: function () { } }); return a }(); R = function () { function a(b, e, k, l) { this._docId = b; this.msgHandler = k.msgHandler; this.evaluatorOptions = l; this.streamManager = new X(e, { msgHandler: k.msgHandler, url: k.url, length: k.length, disableAutoFetch: k.disableAutoFetch, rangeChunkSize: k.rangeChunkSize }); this.pdfDocument = new N(this, this.streamManager.getStream(), k.password) } k.inherit(a, u, { ensure: function (a, b, e) { var k = this; return new Promise(function (l, u) { function G() { try { var h, c = a[b]; h = "function" === typeof c ? c.apply(a, e) : c; l(h) } catch (C) { C instanceof L ? k.streamManager.requestRange(C.begin, C.end).then(G, u) : u(C) } } G() }) }, requestRange: function (a, b) { return this.streamManager.requestRange(a, b) }, requestLoadedStream: function () { this.streamManager.requestAllChunks() }, sendProgressiveData: function (a) { this.streamManager.onReceiveData({ chunk: a }) }, onLoadedStream: function () { return this.streamManager.onLoadedStream() }, terminate: function () { this.streamManager.abort() } }); return a }(); e.LocalPdfManager = l; e.NetworkPdfManager = R }); (function (e, l) { l(e.pdfjsCoreWorker = {}, e.pdfjsSharedUtil, e.pdfjsCorePrimitives, e.pdfjsCorePdfManager) })(this, function (e, l, R, O) { function a() { if (!("console" in n)) { var a = {}; n.console = { log: function () { var a = Array.prototype.slice.call(arguments); n.postMessage({ targetName: "main", action: "console_log", data: a }) }, error: function () { var a = Array.prototype.slice.call(arguments); n.postMessage({ targetName: "main", action: "console_error", data: a }); throw "pdf.js execution error"; }, time: function (b) { a[b] = Date.now() }, timeEnd: function (b) { var c = a[b]; c || r("Unknown timer name " + b); this.log("Timer:", b, Date.now() - c) } } } var b = new Q("worker", "main", self); d.setup(b, self); b.send("ready", null) } var b = l.UNSUPPORTED_FEATURES, L = l.InvalidPDFException, Q = l.MessageHandler, k = l.MissingPDFException, I = l.UnexpectedResponseException, X = l.PasswordException, N = l.PasswordResponses, u = l.UnknownErrorException, G = l.XRefParseException, M = l.arrayByteLength, K = l.arraysToBytes, J = l.assert, v = l.createPromiseCapability, r = l.error, P = l.info, H = l.warn, h = l.setVerbosityLevel, c = R.Ref, C = O.LocalPdfManager, F = O.NetworkPdfManager, n = l.globalScope, A = function () { function a(b) { this.name = b; this.terminated = !1; this._capability = v() } a.prototype = { get finished() { return this._capability.promise }, finish: function () { this._capability.resolve() }, terminate: function () { this.terminated = !0 }, ensureNotTerminated: function () { if (this.terminated) throw Error("Worker task was terminated"); } }; return a }(), g = function () { function a(b, c) { this._queuedChunks = []; var d = b.initialData; d && 0 < d.length && this._queuedChunks.push(d); this._msgHandler = c; this._isRangeSupported = !b.disableRange; this._isStreamingSupported = !b.disableStream; this._contentLength = b.length; this._fullRequestReader = null; this._rangeReaders = []; c.on("OnDataRange", this._onReceiveData.bind(this)); c.on("OnDataProgress", this._onProgress.bind(this)) } function b(a, c) { this._stream = a; this._done = !1; this._queuedChunks = c || []; this._requests = []; this._headersReady = Promise.resolve(); a._fullRequestReader = this; this.onProgress = null } function c(a, b, d) { this._stream = a; this._begin = b; this._end = d; this._queuedChunk = null; this._requests = []; this._done = !1; this.onProgress = null } a.prototype = { _onReceiveData: function (a) { if (void 0 === a.begin) this._fullRequestReader ? this._fullRequestReader._enqueue(a.chunk) : this._queuedChunks.push(a.chunk); else { var b = this._rangeReaders.some(function (b) { if (b._begin !== a.begin) return !1; b._enqueue(a.chunk); return !0 }); J(b) } }, _onProgress: function (a) { if (0 < this._rangeReaders.length) { var b = this._rangeReaders[0]; if (b.onProgress) b.onProgress({ loaded: a.loaded }) } }, _removeRangeReader: function (a) { a = this._rangeReaders.indexOf(a); 0 <= a && this._rangeReaders.splice(a, 1) }, getFullReader: function () { J(!this._fullRequestReader); var a = this._queuedChunks; this._queuedChunks = null; return new b(this, a) }, getRangeReader: function (a, b) { var d = new c(this, a, b); this._msgHandler.send("RequestDataRange", { begin: a, end: b }); this._rangeReaders.push(d); return d }, cancelAllRequests: function (a) { this._fullRequestReader && this._fullRequestReader.cancel(a); this._rangeReaders.slice(0).forEach(function (b) { b.cancel(a) }) } }; b.prototype = { _enqueue: function (a) { this._done || (0 < this._requests.length ? this._requests.shift().resolve({ value: a, done: !1 }) : this._queuedChunks.push(a)) }, get headersReady() { return this._headersReady }, get isRangeSupported() { return this._stream._isRangeSupported }, get isStreamingSupported() { return this._stream._isStreamingSupported }, get contentLength() { return this._stream._contentLength }, read: function () { if (0 < this._queuedChunks.length) { var a = this._queuedChunks.shift(); return Promise.resolve({ value: a, done: !1 }) } if (this._done) return Promise.resolve({ value: void 0, done: !0 }); a = v(); this._requests.push(a); return a.promise }, cancel: function (a) { this._done = !0; this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }); this._requests = [] } }; c.prototype = { _enqueue: function (a) { this._done || (0 === this._requests.length ? this._queuedChunk = a : (this._requests.shift().resolve({ value: a, done: !1 }), this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }), this._requests = []), this._done = !0, this._stream._removeRangeReader(this)) }, get isStreamingSupported() { return !1 }, read: function () { if (this._queuedChunk) return Promise.resolve({ value: this._queuedChunk, done: !1 }); if (this._done) return Promise.resolve({ value: void 0, done: !0 }); var a = v(); this._requests.push(a); return a.promise }, cancel: function (a) { this._done = !0; this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }); this._requests = []; this._stream._removeRangeReader(this) } }; return a }(), m, d = { setup: function (a, b) { var c = !1; a.on("test", function (b) { c || (c = !0, b instanceof Uint8Array ? (b = 255 === b[0], a.postMessageTransfers = b, "response" in new XMLHttpRequest ? a.send("test", { supportTypedArray: !0, supportTransfers: b }) : a.send("test", !1)) : a.send("test", "main", !1)) }); a.on("configure", function (a) { h(a.verbosity) }); a.on("GetDocRequest", function (a) { return d.createDocumentHandler(a, b) }) }, createDocumentHandler: function (a, d) { function e() { if (E) throw Error("Worker was terminated"); } function h(a) { a.finish(); a = x.indexOf(a); x.splice(a, 1) } function l(a) { var b = v(), c = function () { var a = r.ensureDoc("numPages"), c = r.ensureDoc("fingerprint"), e = r.ensureXRef("encrypt"); Promise.all([a, c, e]).then(function (a) { b.resolve({ numPages: a[0], fingerprint: a[1], encrypted: !!a[2] }) }, d) }, d = function (a) { b.reject(a) }; r.ensureDoc("checkHeader", []).then(function () { r.ensureDoc("parseStartXRef", []).then(function () { r.ensureDoc("parse", [a]).then(c, d) }, d) }, d); return b.promise } function n(a, b) { var c = v(), d, f = a.source; if (f.data) { try { d = new C(O, f.data, f.password, b), c.resolve(d) } catch (h) { c.reject(h) } return c.promise } var k; try { f.chunkedViewerLoading ? k = new g(f, y) : (J(m, "pdfjs/core/network module is not loaded"), k = new m(a)) } catch (h) { return c.reject(h), c.promise } var l = k.getFullReader(); l.headersReady.then(function () { l.isStreamingSupported && l.isRangeSupported || (l.onProgress = function (a) { y.send("DocProgress", { loaded: a.loaded, total: a.total }) }); l.isRangeSupported && (d = new F(O, k, { msgHandler: y, url: f.url, password: f.password, length: l.contentLength, disableAutoFetch: f.disableAutoFetch || l.isStreamingSupported, rangeChunkSize: f.rangeChunkSize }, b), c.resolve(d), t = null) })["catch"](function (a) { c.reject(a); t = null }); var p = [], q = 0; (new Promise(function (a, g) { var h = function (a) { try { if (e(), a.done) { if (!d) { var k = K(p); f.length && k.length !== f.length && H("reported HTTP length is different from actual"); try { d = new C(O, k, f.password, b), c.resolve(d) } catch (m) { c.reject(m) } p = [] } t = null } else { var n = a.value; q += M(n); l.isStreamingSupported || y.send("DocProgress", { loaded: q, total: Math.max(q, l.contentLength || 0) }); d ? d.sendProgressiveData(n) : p.push(n); l.read().then(h, g) } } catch (m) { g(m) } }; l.read().then(h, g) }))["catch"](function (a) { c.reject(a); t = null }); t = function () { k.cancelAllRequests("abort") }; return c.promise } var r, E = !1, t = null, x = [], O = a.docId, z = a.docId + "_worker", y = new Q(z, O, d); y.postMessageTransfers = a.postMessageTransfers; var p = function (a) { var b = function (a) { e(); y.send("GetDoc", { pdfInfo: a }) }, c = function (a) { a instanceof X ? a.code === N.NEED_PASSWORD ? y.send("NeedPassword", a) : a.code === N.INCORRECT_PASSWORD && y.send("IncorrectPassword", a) : a instanceof L ? y.send("InvalidPDF", a) : a instanceof k ? y.send("MissingPDF", a) : a instanceof I ? y.send("UnexpectedResponse", a) : y.send("UnknownError", new u(a.message, a.toString())) }; e(); n(a, { forceDataSchema: a.disableCreateObjectURL, maxImageSize: void 0 === a.maxImageSize ? -1 : a.maxImageSize, disableFontFace: a.disableFontFace, cMapOptions: { url: void 0 === a.cMapUrl ? null : a.cMapUrl, packed: !0 === a.cMapPacked } }).then(function (a) { if (E) throw a.terminate(), Error("Worker was terminated"); r = a; y.send("PDFManagerReady", null); r.onLoadedStream().then(function (a) { y.send("DataLoaded", { length: a.bytes.byteLength }) }) }).then(function Y() { e(); l(!1).then(b, function (a) { e(); a instanceof G ? (r.requestLoadedStream(), r.onLoadedStream().then(function () { e(); l(!0).then(b, c) })) : (a instanceof X && r.passwordChanged().then(Y), c(a)) }, c) }, c) }; y.on("GetPage", function (a) { return r.getPage(a.pageIndex).then(function (a) { var b = r.ensure(a, "rotate"), c = r.ensure(a, "ref"); a = r.ensure(a, "view"); return Promise.all([b, c, a]).then(function (a) { return { rotate: a[0], ref: a[1], view: a[2] } }) }) }); y.on("GetPageIndex", function (a) { a = new c(a.ref.num, a.ref.gen); return r.pdfDocument.catalog.getPageIndex(a) }); y.on("GetDestinations", function (a) { return r.ensureCatalog("destinations") }); y.on("GetDestination", function (a) { return r.ensureCatalog("getDestination", [a.id]) }); y.on("GetPageLabels", function (a) { return r.ensureCatalog("pageLabels") }); y.on("GetAttachments", function (a) { return r.ensureCatalog("attachments") }); y.on("GetJavaScript", function (a) { return r.ensureCatalog("javaScript") }); y.on("GetOutline", function (a) { return r.ensureCatalog("documentOutline") }); y.on("GetMetadata", function (a) { return Promise.all([r.ensureDoc("documentInfo"), r.ensureCatalog("metadata")]) }); y.on("GetData", function (a) { r.requestLoadedStream(); return r.onLoadedStream().then(function (a) { return a.bytes }) }); y.on("GetStats", function (a) { return r.pdfDocument.xref.stats }); y.on("UpdatePassword", function (a) { r.updatePassword(a) }); y.on("GetAnnotations", function (a) { return r.getPage(a.pageIndex).then(function (b) { return r.ensure(b, "getAnnotationsData", [a.intent]) }) }); y.on("RenderPageRequest", function (a) { var c = a.pageIndex; r.getPage(c).then(function (d) { var f = new A("RenderPageRequest: page " + c); x.push(f); var e = c + 1, g = Date.now(); d.getOperatorList(y, f, a.intent).then(function (a) { h(f); P("page=" + e + " - getOperatorList: time=" + (Date.now() - g) + "ms, len=" + a.totalLength) }, function (c) { h(f); f.terminated || (y.send("UnsupportedFeature", { featureId: b.unknown }), y.send("PageError", { pageNum: e, error: "string" === typeof c ? { message: c, stack: "worker.js: while trying to getPage() and getOperatorList()" } : "object" === typeof c ? { message: c.message || c.toString(), stack: c.stack || "worker.js: while trying to getPage() and getOperatorList()" } : { message: "Unknown exception type: " + typeof c, stack: "worker.js: while trying to getPage() and getOperatorList()" }, intent: a.intent })) }) }) }, this); y.on("GetTextContent", function (a) { var b = a.pageIndex, c = a.normalizeWhitespace; return r.getPage(b).then(function (a) { var d = new A("GetTextContent: page " + b); x.push(d); var f = b + 1, e = Date.now(); return a.extractTextContent(d, c).then(function (a) { h(d); P("text indexing: page=" + f + " - time=" + (Date.now() - e) + "ms"); return a }, function (a) { h(d); if (!d.terminated) throw a; }) }) }); y.on("Cleanup", function (a) { return r.cleanup() }); y.on("Terminate", function (a) { E = !0; r && (r.terminate(), r = null); t && t(); var b = []; x.forEach(function (a) { b.push(a.finished); a.terminate() }); return Promise.all(b).then(function () { y.destroy(); y = null }) }); y.on("Ready", function (b) { p(a); a = null }); return z } }; "undefined" !== typeof window || "undefined" !== typeof module && module.require || a(); e.setPDFNetworkStreamClass = function (a) { m = a }; e.WorkerTask = A; e.WorkerMessageHandler = d }); var ha = function () { function e(e, a) { this.url = e; a = a || {}; this.httpHeaders = (this.isHttp = /^https?:/i.test(e)) && a.httpHeaders || {}; this.withCredentials = a.withCredentials || !1; this.getXhr = a.getXhr || function () { return new XMLHttpRequest }; this.currXhrId = 0; this.pendingRequests = Object.create(null); this.loadedRequests = Object.create(null) } function l(e) { e = e.response; if ("string" !== typeof e) return e; for (var a = e.length, b = new Uint8Array(a), l = 0; l < a; l++) b[l] = e.charCodeAt(l) & 255; return b.buffer } var R = function () { try { var e = new XMLHttpRequest; e.open("GET", "https://example.com"); e.responseType = "moz-chunked-arraybuffer"; return "moz-chunked-arraybuffer" === e.responseType } catch (a) { return !1 } }(); e.prototype = { requestRange: function (e, a, b) { e = { begin: e, end: a }; for (var l in b) e[l] = b[l]; return this.request(e) }, requestFull: function (e) { return this.request(e) }, request: function (e) { var a = this.getXhr(), b = this.currXhrId++, l = this.pendingRequests[b] = { xhr: a }; a.open("GET", this.url); a.withCredentials = this.withCredentials; for (var Q in this.httpHeaders) { var k = this.httpHeaders[Q]; "undefined" !== typeof k && a.setRequestHeader(Q, k) } this.isHttp && "begin" in e && "end" in e ? (a.setRequestHeader("Range", "bytes=" + (e.begin + "-" + (e.end - 1))), l.expectedStatus = 206) : l.expectedStatus = 200; R && e.onProgressiveData ? (a.responseType = "moz-chunked-arraybuffer", l.onProgressiveData = e.onProgressiveData, l.mozChunked = !0) : a.responseType = "arraybuffer"; e.onError && (a.onerror = function (b) { e.onError(a.status) }); a.onreadystatechange = this.onStateChange.bind(this, b); a.onprogress = this.onProgress.bind(this, b); l.onHeadersReceived = e.onHeadersReceived; l.onDone = e.onDone; l.onError = e.onError; l.onProgress = e.onProgress; a.send(null); return b }, onProgress: function (e, a) { var b = this.pendingRequests[e]; if (b) { if (b.mozChunked) { var L = l(b.xhr); b.onProgressiveData(L) } (b = b.onProgress) && b(a) } }, onStateChange: function (e, a) { var b = this.pendingRequests[e]; if (b) { var L = b.xhr; 2 <= L.readyState && b.onHeadersReceived && (b.onHeadersReceived(), delete b.onHeadersReceived); if (4 === L.readyState && e in this.pendingRequests) if (delete this.pendingRequests[e], 0 === L.status && this.isHttp) { if (b.onError) b.onError(L.status) } else { var Q = L.status || 200; if (200 === Q && 206 === b.expectedStatus || Q === b.expectedStatus) { this.loadedRequests[e] = !0; var k = l(L); if (206 === Q) L = L.getResponseHeader("Content-Range"), L = /bytes (\d+)-(\d+)\/(\d+)/.exec(L), L = parseInt(L[1], 10), b.onDone({ begin: L, chunk: k }); else if (b.onProgressiveData) b.onDone(null); else if (k) b.onDone({ begin: 0, chunk: k }); else if (b.onError) b.onError(L.status) } else if (b.onError) b.onError(L.status) } } }, hasPendingRequests: function () { for (var e in this.pendingRequests) return !0; return !1 }, getRequestXhr: function (e) { return this.pendingRequests[e].xhr }, isStreamingRequest: function (e) { return !!this.pendingRequests[e].onProgressiveData }, isPendingRequest: function (e) { return e in this.pendingRequests }, isLoadedRequest: function (e) { return e in this.loadedRequests }, abortAllRequests: function () { for (var e in this.pendingRequests) this.abortRequest(e | 0) }, abortRequest: function (e) { var a = this.pendingRequests[e].xhr; delete this.pendingRequests[e]; a.abort() } }; return e }(); (function (e, l) { l(e.pdfjsCoreNetwork = {}, e.pdfjsSharedUtil, e.pdfjsCoreWorker) })(this, function (e, l, R) { function O(a) { this._options = a; a = a.source; this._manager = new ha(a.url, { httpHeaders: a.httpHeaders, withCredentials: a.withCredentials }); this._rangeChunkSize = a.rangeChunkSize; this._fullRequestReader = null; this._rangeRequestReaders = [] } function a(a, b) { this._manager = a; var e = b.source, k = { onHeadersReceived: this._onHeadersReceived.bind(this), onProgressiveData: e.disableStream ? null : this._onProgressiveData.bind(this), onDone: this._onDone.bind(this), onError: this._onError.bind(this), onProgress: this._onProgress.bind(this) }; this._url = e.url; this._fullRequestId = a.requestFull(k); this._headersReceivedCapability = Q(); this._disableRange = b.disableRange || !1; this._contentLength = e.length; this._rangeChunkSize = e.rangeChunkSize; this._rangeChunkSize || this._disableRange || (this._disableRange = !0); this._isRangeSupported = this._isStreamingSupported = !1; this._cachedChunks = []; this._requests = []; this._done = !1; this._storedError = void 0; this.onProgress = null } function b(a, b, e) { this._manager = a; var k = { onDone: this._onDone.bind(this), onProgress: this._onProgress.bind(this) }; this._requestId = a.requestRange(b, e, k); this._requests = []; this._queuedChunk = null; this._done = !1; this.onClosed = this.onProgress = null } var L = l.assert, Q = l.createPromiseCapability, k = l.isInt, I = l.MissingPDFException, X = l.UnexpectedResponseException; O.prototype = { _onRangeRequestReaderClosed: function (a) { a = this._rangeRequestReaders.indexOf(a); 0 <= a && this._rangeRequestReaders.splice(a, 1) }, getFullReader: function () { L(!this._fullRequestReader); return this._fullRequestReader = new a(this._manager, this._options) }, getRangeReader: function (a, e) { var k = new b(this._manager, a, e); k.onClosed = this._onRangeRequestReaderClosed.bind(this); this._rangeRequestReaders.push(k); return k }, cancelAllRequests: function (a) { this._fullRequestReader && this._fullRequestReader.cancel(a); this._rangeRequestReaders.slice(0).forEach(function (b) { b.cancel(a) }) } }; a.prototype = { _validateRangeRequestCapabilities: function () { if (this._disableRange) return !1; var a = this._manager.getRequestXhr(this._fullRequestId); if ("bytes" !== a.getResponseHeader("Accept-Ranges") || "identity" !== (a.getResponseHeader("Content-Encoding") || "identity")) return !1; a = a.getResponseHeader("Content-Length"); a = parseInt(a, 10); if (!k(a)) return !1; this._contentLength = a; return a <= 2 * this._rangeChunkSize ? !1 : !0 }, _onHeadersReceived: function () { this._validateRangeRequestCapabilities() && (this._isRangeSupported = !0); var a = this._manager, b = this._fullRequestId; a.isStreamingRequest(b) ? this._isStreamingSupported = !0 : this._isRangeSupported && a.abortRequest(b); this._headersReceivedCapability.resolve() }, _onProgressiveData: function (a) { 0 < this._requests.length ? this._requests.shift().resolve({ value: a, done: !1 }) : this._cachedChunks.push(a) }, _onDone: function (a) { a && this._onProgressiveData(a.chunk); this._done = !0; 0 < this._cachedChunks.length || (this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }), this._requests = []) }, _onError: function (a) { var b = this._url, e; this._storedError = e = 404 === a || 0 === a && /^file:/.test(b) ? new I('Missing PDF "' + b + '".') : new X("Unexpected server response (" + a + ') while retrieving PDF "' + b + '".', a); this._headersReceivedCapability.reject(e); this._requests.forEach(function (a) { a.reject(e) }); this._requests = []; this._cachedChunks = [] }, _onProgress: function (a) { if (this.onProgress) this.onProgress({ loaded: a.loaded, total: a.lengthComputable ? a.total : this._contentLength }) }, get isRangeSupported() { return this._isRangeSupported }, get isStreamingSupported() { return this._isStreamingSupported }, get contentLength() { return this._contentLength }, get headersReady() { return this._headersReceivedCapability.promise }, read: function () { if (this._storedError) return Promise.reject(this._storedError); if (0 < this._cachedChunks.length) { var a = this._cachedChunks.shift(); return Promise.resolve(a) } if (this._done) return Promise.resolve({ value: void 0, done: !0 }); a = Q(); this._requests.push(a); return a.promise }, cancel: function (a) { this._done = !0; this._headersReceivedCapability.reject(a); this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }); this._requests = []; this._manager.isPendingRequest(this._fullRequestId) && this._manager.abortRequest(this._fullRequestId); this._fullRequestReader = null } }; b.prototype = { _close: function () { if (this.onClosed) this.onClosed(this) }, _onDone: function (a) { a = a.chunk; 0 < this._requests.length ? this._requests.shift().resolve({ value: a, done: !1 }) : this._queuedChunk = a; this._done = !0; this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }); this._requests = []; this._close() }, _onProgress: function (a) { if (!this.isStreamingSupported && this.onProgress) this.onProgress({ loaded: a.loaded }) }, get isStreamingSupported() { return !1 }, read: function () { if (null !== this._queuedChunk) { var a = this._queuedChunk; this._queuedChunk = null; return Promise.resolve({ value: a, done: !1 }) } if (this._done) return Promise.resolve({ value: void 0, done: !0 }); a = Q(); this._requests.push(a); return a.promise }, cancel: function (a) { this._done = !0; this._requests.forEach(function (a) { a.resolve({ value: void 0, done: !0 }) }); this._requests = []; this._manager.isPendingRequest(this._requestId) && this._manager.abortRequest(this._requestId); this._close() } }; R.setPDFNetworkStreamClass(O); e.PDFNetworkStream = O; e.NetworkManager = ha }) }).call(ha); xa.WorkerMessageHandler = ha.pdfjsCoreWorker.WorkerMessageHandler });