{"version":3,"file":"static/js/main.696b4615.js","mappings":"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IAASsb,GAAa,IAARl0B,EACdA,IAAU,EAGM,OAAd67B,GAAsB3rB,EAAY,OACpC9R,EAAW8R,KAAgB2rB,GAAa,EAAK25C,EAMzCtlE,GAAajQ,EAAY,GAAKwO,EAAgB,OAC9CA,EACFxO,EAAaA,GAAa,EAAK,IAInC47B,EAAYh9B,CAAA,MA9EVqR,EAAY1T,EAAW,EAEvByD,GAAa,IADbwO,EAAgBhS,EAAgB,IACG,EAGnCo/B,EAAY,YA4EZzgC,IAAOsB,GACToN,GAAQkvD,IAAI,8CAGPpgD,CAAA,CCz1BT,SAAS8yI,GAAYnvJ,GAAA,IAMfoB,EACAib,EACAlc,EACAD,EAeAqN,EAvBAylF,EAASpuF,KAAKkhC,MACd7lC,EAAS,IAAIf,MAAM,IACnByU,EAAU,IAAIzU,MAAM,IACpBgT,EAAU,IAAIhT,MAAM,IACpBwE,EAAW,IAAIxE,MAAM,IAMrB6D,EAAU,IAAI7D,MAAM,OACpByC,EAAW,IAAIzC,MAAM,OACrBL,EAAkB,IAAIK,MAAM,IAC5BC,EAAK,IAAID,MAAM,IACf2C,EAAU,GACVy9B,EAAU,EACVh9B,EAAU,EAEVxD,EAAM,IAAII,MAAM,IAChB0C,EAAM,IAAI1C,MAAM,IAChBuE,EAAM,IAAIvE,MAAM,IAChB+5E,EAAM,IAAI/5E,MAAM,KAChBy4B,EAAgB,IAAIz4B,MAAM,MAG1BkT,EAAS,CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGE5O,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEygF,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DniF,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEpB,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGE8wD,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEyhB,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D3gE,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEqrD,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cAuKOs3B,EAAkBj1F,EAASoB,GAAA,QAC9Bib,EAAY,EACZlc,EAAe,EACfD,EAAK,IAAIhB,MACJqO,EAAI,EAAGA,GAAK,GAAIA,IAAK,KACvB,IAAIylF,EAAI,EAAGA,GAAKhzF,EAAQuN,GAAIylF,IAC/B9yF,EAAGkB,EAAUjB,IAAiB,GAC9BD,EAAGkB,EAAUjB,IAAe,GAAKkc,EACjCnc,EAAGkB,EAAUjB,IAAe,GAAKoN,EACjCpN,IACAkc,IAEFA,GAAa,SAERnc,CAAA,UA2DAg5E,EAAUl5E,GAAA,QACbo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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGOib,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBlc,EAAI6yF,GAAQ5xF,EAAIib,GAAKrc,EAAK,IAAM,KACpCG,EAAIyE,KAAKyT,IAAIzT,KAAKC,IAAI1E,EAAG,GAAI,KAC7BF,EAAOmS,EAAOiK,IAAMlc,CAAA,SAElBD,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEOqN,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBxK,EAAIiwF,GAAQ9yF,EAAKqN,GAAKvN,EAAK,IAAM,KACrC+C,EAAI6B,KAAKyT,IAAIzT,KAAKC,IAAI9B,EAAG,GAAI,KAC7B4Q,EAAQvB,EAAO7E,IAAMxK,CAAA,SAEnBpB,EAAO,CACT,EACA,YACA,YACA,YACA,EACA,WACA,SACA,YAEE9C,EAAI,EACCM,EAAM,EAAGA,EAAM,EAAGA,IAAA,IACpB,IAAI0C,EAAM,EAAGA,EAAM,EAAGA,IACzBqQ,EAAQrT,GAAK,GAAOoB,EAAOmS,EAAOvT,IAAM8C,EAAKxC,GAAOwC,EAAKE,GAAO,GAChE6B,EAAS7E,GAAK,GAAO8U,E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ACfR,GAAK,MAAQpB,EAAE2B,EACfP,GAAK,MAAQpB,EAAEquD,GAAA,IACTnuD,IAAOkB,GAAKvC,GAAKm0F,EAAK5xF,GAAKjC,GAAKa,EAAE++D,GAAM39D,GAAK,MAAQpB,EAAEsS,EAAA,MAE5DlR,EAAI,EACTpB,EAAIoB,EAAI,EAAI,UAGZ,GAAKpB,GAAA,MACDqc,GAAKA,EAAEgkD,KAAOrgE,EAAIu7J,GAAGp7J,IADVH,CAAA,KAIjBq7J,GAAK,GACPhU,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEFiU,GAAK,GACL0Y,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJp3F,EAAE,aAAc,iBAChB98E,EAAK04K,WAAa,kBACT,YAET14K,EAAK24K,WAAa,SAAS34K,GAAA,OAClBA,CAAA,EAETA,EAAK44K,WAAa,SAAS54K,EAAGoB,EAAGib,GAAA,OACxBjb,EAAEib,EAAI,IAEfrc,EAAK64K,WAAa,SAAS74K,EAAGoB,EAAGib,GAAA,OACxBjb,EAAEib,EAAI,IAEfrc,EAAK84K,WAAa,SAAS94K,EAAGoB,EAAGib,GAAA,OACxBjb,EAAEib,EAAI,IAEfrc,EAAK+4K,WAAa,SAAS/4K,EAAGoB,EAAGib,GAAA,OACxB9J,EAAGA,EAAGvS,EAAGoB,EAAEib,EAAI,IAAKjb,EAAEib,EAAI,KAEnCrc,EAAKg5K,WAAa,SAASh5K,EAAGoB,EAAGib,GAAA,OACxB9J,EAAGvS,EAAGoB,EAAEib,EAAI,KAErBrc,EAAKi5K,WAAa,SAASj5K,EAAGoB,EAAGib,GAAA,OACxB9J,EAAGvS,EAAGoB,EAAEib,EAAI,KAErBrc,EAAKk5K,WAAa,SAASl5K,EAAGoB,EAAGib,GAAA,OACxB9J,EAAGnR,EAAEib,EAAI,GAAIjb,EAAEib,EAAI,KAE5Brc,EA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AAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEvB,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFqB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFj6F,GAAK,EACLhB,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFc,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFJ,GAAK,KACLN,GAAK,CACH,CAAC,IAAK,IAAK,IAAK,GAChB,CAAC,IAAK,IAAK,IAAK,IAAK,GACrB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE1DZ,GAAK,CAAC,EAA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,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAA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KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA8jBEib,EAAa,IAAIrc,EAAMokL,eAAe,CAAEK,eAAA,IAoC5CzkL,EAAMkwJ,IAAI6L,OAAOt5J,KAAK,CAAC,kBAlCE,SAASzC,GAAA,IAC5BoB,EAAOpB,EAAKq6B,KAGZl6B,GAFIH,EAAKwD,EACLxD,EAAK4B,EACC5B,EAAKsO,SAAW,CAAC,GAG3BpO,GAFQF,EAAKi1J,MACN90J,EAAQs1J,KACL,OAEdt1J,EAAQskL,cAC2B,kBAA1BtkL,EAAQskL,eAA8BtkL,EAAQskL,cACvDpoK,EAAWs/F,WAAWx7G,GAEuB,mBAAzCpB,OAAOK,UAAU2yB,SAASzyB,KAAK8B,GAA4B,KACzDmM,EAAI,MACRrN,EAAU,GACLqN,EAAI,EAAGA,EAAInM,EAAKf,OAAQkN,GAAK,EACgB,mBAA5CxO,OAAOK,UAAU2yB,SAASzyB,KAAK8B,EAAKmM,IACtCrN,EAAQuC,KAAK,CACX4Z,EAAWmoK,cAAcpjL,EAAKmM,GAAG,IACjCnM,EAAKmM,GAAG,GACRnM,EAAKmM,GAAG,KAGVrN,EAAQuC,KAAK,CAAC4Z,EAAWmoK,cAAcpjL,EAAKmM,MAGhDvN,EAAKq6B,KAAOn6B,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","sources":["../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/invariant/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-confirm-alert/lib/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","View/Components/CoreComponents/textbox.tsx","View/Components/CoreComponents/textarea.tsx","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","View/Components/CoreComponents/button.tsx","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa/index.mjs","Controller/Common/GlobalOperations.ts","Model/Response/Common/ApiBaseResponse.ts","View/UserSide/UserForm.tsx","Controller/Api/ChatClientUserController.tsx","../node_modules/@microsoft/signalr/src/DefaultReconnectPolicy.ts","../node_modules/@microsoft/signalr/src/HeaderNames.ts","../node_modules/@microsoft/signalr/src/HttpClient.ts","../node_modules/@microsoft/signalr/src/AccessTokenHttpClient.ts","../node_modules/@microsoft/signalr/src/Errors.ts","../node_modules/@microsoft/signalr/src/ILogger.ts","../node_modules/@microsoft/signalr/src/Loggers.ts","../node_modules/@microsoft/signalr/src/Utils.ts","../node_modules/@microsoft/signalr/src/FetchHttpClient.ts","../node_modules/@microsoft/signalr/src/XhrHttpClient.ts","../node_modules/@microsoft/signalr/src/DefaultHttpClient.ts","../node_modules/@microsoft/signalr/src/ITransport.ts","../node_modules/@microsoft/signalr/src/AbortController.ts","../node_modules/@microsoft/signalr/src/LongPollingTransport.ts","../node_modules/@microsoft/signalr/src/ServerSentEventsTransport.ts","../node_modules/@microsoft/signalr/src/WebSocketTransport.ts","../node_modules/@microsoft/signalr/src/HttpConnection.ts","../node_modules/@microsoft/signalr/src/TextMessageFormat.ts","../node_modules/@microsoft/signalr/src/HandshakeProtocol.ts","../node_modules/@microsoft/signalr/src/IHubProtocol.ts","../node_modules/@microsoft/signalr/src/Subject.ts","../node_modules/@microsoft/signalr/src/MessageBuffer.ts","../node_modules/@microsoft/signalr/src/HubConnection.ts","../node_modules/@microsoft/signalr/src/JsonHubProtocol.ts","../node_modules/@microsoft/signalr/src/HubConnectionBuilder.ts","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","View/Components/CoreComponents/FileUploadComponent.tsx","Controller/Api/PortalController.tsx","View/UserSide/renderMessageContent.tsx","View/UserSide/ChatScreen.tsx","View/UserSide/WebChatPage.tsx","Controller/Api/MusteriKurumTanimController.tsx","Controller/Api/ClientAgentController.tsx","View/AgentSide/ChatContext.tsx","Model/Response/ClientAgent/GetChatSessionDetailResponse.tsx","View/Components/CoreComponents/StatusMessage.tsx","View/AgentSide/Sidebar.tsx","View/AgentSide/MessageList.tsx","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","View/Components/CoreComponents/combobox.tsx","Model/Request/ClientAgent/ReportSessionByAlbinaSoftAgentRequest.tsx","View/AgentSide/ReportChat.tsx","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","View/AgentSide/ExistingReportsPopup.tsx","View/AgentSide/MessageInput.tsx","View/AgentSide/ChatWindow.tsx","Model/Request/ChatBot/CreateNewSessionAndGetChatBotRootRequest.tsx","Model/Response/ChatBot/GetNodeChildsListResponse.tsx","View/ChatBot/ChatBotMainScreen.tsx","Controller/Api/ChatBotController.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline \";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n });\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { UploadClientUserFile } from '../../../Controller/Api/PortalController';\r\nimport { ApiBaseResponse, ResponseCode } from '../../../Model/Response/Common/ApiBaseResponse';\r\nimport { FileUploadResponse } from '../../../Model/Response/ClientUser/FileUploadResponse';\r\nimport { FaSpinner } from 'react-icons/fa'; // Spinner ikonu\r\n\r\n\r\n// Props tipi tanımlıyoruz\r\ninterface FileUploadComponentProps {\r\n uploadUrl: string; // Sunucuya gönderim URL'si\r\n allowedTypes: string[]; // İzin verilen dosya türleri\r\n maxSizeMB?: number; // Opsiyonel - Maksimum dosya boyutu (MB)\r\n onSuccess?: (response: FileUploadResponse) => void; // Artık response alıyor\r\n onError?: (error: string) => void;// Opsiyonel - Hatalı yükleme sonrası callback\r\n customStyle?: React.CSSProperties; // Kullanıcı tarafından sağlanan stil\r\n icon?: React.ReactNode; // İkonu prop olarak alıyoruz (örn: )\r\n hID: string; // hID parametresi\r\n guid: string; // guid parametresi\r\n sessionID: number; // sessionID parametresi\r\n}\r\n\r\nconst FileUploadComponent: React.FC = ({\r\n uploadUrl,\r\n allowedTypes,\r\n maxSizeMB = 10, // Varsayılan olarak 10 MB\r\n onSuccess,\r\n onError,\r\n customStyle, // Kullanıcı tarafından sağlanan stil\r\n icon, // İkon prop'u ekliyoruz\r\n hID, // Parametreler alınıyor\r\n guid, // Parametreler alınıyor\r\n sessionID, // Parametreler alınıyor\r\n}) => {\r\n const [file, setFile] = useState(null);\r\n const [errorMessage, setErrorMessage] = useState('');\r\n const [dragging, setDragging] = useState(false); // Dragging durumunu izlemek için\r\n const fileInputRef = useRef(null); // Dosya inputu için ref kullanıyoruz\r\n const [loading, setLoading] = useState(false); // Dosya yüklenirken loading durumu\r\n\r\n\r\n // Dosya seçimi işlemi\r\n const handleFileChange = (e: React.ChangeEvent) => {\r\n const selectedFile = e.target.files?.[0] || null;\r\n validateAndSetFile(selectedFile);\r\n };\r\n\r\n // Sürüklenen dosyayı kontrol et ve ayarla\r\n const validateAndSetFile = (selectedFile: File | null) => {\r\n if (selectedFile) {\r\n const fileSizeMB = selectedFile.size / (1024 * 1024); // MB cinsinden boyut\r\n if (!allowedTypes.includes(selectedFile.type)) {\r\n setErrorMessage('Geçersiz dosya türü. Yalnızca belirli dosyalar yüklenebilir.');\r\n setFile(null);\r\n } else if (fileSizeMB > maxSizeMB) {\r\n setErrorMessage(`Dosya boyutu ${maxSizeMB} MB'tan büyük olamaz.`);\r\n setFile(null);\r\n } else {\r\n setFile(selectedFile);\r\n setErrorMessage('');\r\n handleFileUpload(selectedFile); // Doğrudan dosya yüklensin\r\n }\r\n }\r\n };\r\n\r\n // Dosya yükleme işlemi\r\n const handleFileUpload = async (file: File) => {\r\n\r\n setLoading(true); // Yükleme başladığında loading true\r\n try {\r\n\r\n let response: ApiBaseResponse | null =\r\n await UploadClientUserFile(file, Number(hID), guid, sessionID);\r\n\r\n if (!response || !response.content || response.responseCode != ResponseCode.OK)\r\n return;\r\n\r\n // Başarılıysa onSuccess callback'ini çağırıyoruz\r\n if (onSuccess) {\r\n onSuccess(response.content); // response.content içeriğini onSuccess ile tetikliyoruz\r\n }\r\n console.log(response.content)\r\n\r\n } catch (error) {\r\n if (error instanceof Error) {\r\n setErrorMessage('Yükleme sırasında bir hata oluştu: ' + error.message);\r\n if (onError) onError(error.message);\r\n } else {\r\n setErrorMessage('Yükleme sırasında bilinmeyen bir hata oluştu.');\r\n if (onError) onError('Bilinmeyen hata');\r\n }\r\n } finally {\r\n setLoading(false); // Yükleme tamamlandığında loading false\r\n }\r\n };\r\n\r\n // Sürükle Bırak olay işleyicileri\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setDragging(true);\r\n };\r\n\r\n const handleDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setDragging(false);\r\n\r\n const droppedFile = e.dataTransfer.files?.[0] || null;\r\n validateAndSetFile(droppedFile);\r\n };\r\n\r\n // Dosya input'una tıklamak için\r\n const handleClick = () => {\r\n fileInputRef.current?.click();\r\n };\r\n\r\n // Varsayılan stil\r\n const defaultStyle: React.CSSProperties = {\r\n border: '2px dashed #aaa',\r\n padding: '20px',\r\n textAlign: 'center',\r\n display: 'flex', // Flexbox ile ortalama\r\n alignItems: 'center', // Dikey ortalama\r\n justifyContent: 'center', // Yatay ortalama\r\n height: '150px', // Alanın boyutu\r\n backgroundColor: dragging ? '#f0f0f0' : '#fff',\r\n cursor: 'pointer',\r\n };\r\n\r\n // Mesajı gösterdikten sonra 3 saniye içinde kaybolmasını sağlamak için useEffect\r\n useEffect(() => {\r\n if (errorMessage) {\r\n const timer = setTimeout(() => {\r\n setErrorMessage(''); // 3 saniye sonra hata mesajını temizliyoruz\r\n }, 3000);\r\n return () => clearTimeout(timer); // Component unmount olursa temizliyoruz\r\n }\r\n }, [errorMessage]); // errorMessage her değiştiğinde tetiklenir\r\n\r\n\r\n return (\r\n
    \r\n \r\n {/* Eğer yükleme yapılıyorsa spinner göster, aksi halde ikon */}\r\n {loading ? (\r\n \r\n ) : (\r\n icon &&
    {icon}
    // Eğer yükleme yoksa ikonu göster\r\n )}\r\n \r\n
    \r\n {errorMessage &&

    {errorMessage}

    }\r\n \r\n );\r\n};\r\n\r\nexport default FileUploadComponent;\r\n","import { FileUploadResponse } from \"../../Model/Response/ClientUser/FileUploadResponse\";\r\nimport { ApiBaseResponse } from \"../../Model/Response/Common/ApiBaseResponse\";\r\nimport { GlobalOperations } from \"../Common/GlobalOperations\";\r\n\r\nexport async function UploadClientUserFile(file: File, hID: number, guid: string, sessionID: number): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n \r\n const formData = new FormData();\r\n formData.append('file', file); // Dosyayı formData'ya ekliyoruz\r\n formData.append('hID', hID.toString()); // hID değerini formData'ya ekliyoruz\r\n formData.append('guid', guid); // guid değerini formData'ya ekliyoruz\r\n formData.append('sessionID', sessionID.toString()); // sessionID değerini formData'ya ekliyoruz\r\n \r\n // Dinamik olarak URL'yi oluşturma\r\n const uploadUrl = `${GlobalOperations.BaseUrl}api/ChatClientSide/UploadClientUserFile`;\r\n\r\n \r\n\r\n // POST işlemi için fetch kullanımı\r\n let response = await fetch(uploadUrl, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': GlobalOperations.UserToken \r\n },\r\n body: formData // formData nesnesini gönderiyoruz\r\n });\r\n\r\n // Sunucudan gelen cevabı işliyoruz\r\n if (response.ok) {\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n } else {\r\n // Hata durumunu ele almak için\r\n let errorText = await response.text();\r\n console.error(\"Dosya yükleme hatası:\", errorText);\r\n return null;\r\n }\r\n}\r\n","import { FaDownload, FaFileExcel, FaFileImage, FaFilePdf, FaFileWord } from \"react-icons/fa\";\r\n\r\ninterface RenderMessageContentProps {\r\n url: string;\r\n fileName?: string;\r\n}\r\n\r\nconst renderMessageContent: React.FC = ({ url, fileName }) => {\r\n url = url.replace(/^'(.*)'$/, '$1');\r\n\r\n const getFileTypeIcon = (fileUrl: string) => {\r\n\r\n const fileExtension = fileUrl.split('.').pop()?.toLowerCase(); // Dosya uzantısını al\r\n\r\n switch (fileExtension) {\r\n case 'pdf':\r\n return ;\r\n case 'doc':\r\n case 'docx':\r\n return ;\r\n case 'xls':\r\n case 'xlsx':\r\n return ;\r\n case 'jpg':\r\n case 'jpeg':\r\n case 'png':\r\n case 'gif':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const icon = getFileTypeIcon(url);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default renderMessageContent;\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport TextArea from '../Components/CoreComponents/textarea';\r\nimport { FaPaperPlane, FaCamera, FaFilePdf, FaFileWord, FaFileExcel, FaFileImage, FaDownload } from 'react-icons/fa';\r\nimport { StartChatResponse } from '../../Model/Response/ClientUser/StartChatResponse';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { SetSignalRSessionToChatSession } from '../../Controller/Api/ChatClientUserController';\r\nimport { SetSignalRSessionToChatSessionRequest } from '../../Model/Request/ClientUser/SetSignalRSessionToChatSessionRequest';\r\nimport { SetSignalRSessionToChatSessionResponse } from '../../Model/Response/ClientUser/SetSignalRSessionToChatSessionResponse';\r\nimport { ApiBaseResponse, ResponseCode } from '../../Model/Response/Common/ApiBaseResponse';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { GlobalOperations } from '../../Controller/Common/GlobalOperations';\r\nimport { SendMessageByAgentResponse } from '../../Model/Response/SignalR/SendMessageByAgentResponse';\r\nimport { SendMessageByClientUserResponse } from '../../Model/Response/SignalR/SendMessageByClientUserResponse';\r\nimport { SendMessageByClientUserRequest } from '../../Model/Request/SignalR/SendMessageByClientUserRequest';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { ChangeAgentTypingResponse } from '../../Model/Response/SignalR/ChangeAgentTypingResponse';\r\nimport FileUploadComponent from '../Components/CoreComponents/FileUploadComponent';\r\nimport { FileUploadResponse } from '../../Model/Response/ClientUser/FileUploadResponse';\r\nimport { renderToString } from 'react-dom/server'; // JSX'i string'e çevirmek için\r\nimport renderMessageContent from './renderMessageContent';\r\nimport RenderMessageContent from './renderMessageContent';\r\n\r\nexport interface ClientSideMessages {\r\n messageContent: string;\r\n messageOwnerName: string;\r\n messageDateUtc: number;\r\n messageSide: MessageSideEnum;\r\n}\r\n\r\nexport enum MessageSideEnum {\r\n ClientUser = 1,\r\n Agent = 2\r\n}\r\n\r\ninterface ChatScreenProps {\r\n chatStart: StartChatResponse | null;\r\n}\r\n\r\nconst ChatScreen: React.FC = ({ chatStart }) => {\r\n const messageRef = useRef(null);\r\n const messagesEndRef = useRef(null);\r\n const [clientUserName, setClientUserName] = useState('');\r\n const [loading, setLoading] = useState(true);\r\n const [showExportPdf, setShowExportPdf] = useState(false);\r\n const [sessionId, setSessionId] = useState(0);\r\n const chatContentRef = useRef(null); // chat alanı referansı\r\n const [messages, setMessages] = useState(chatStart ? [\r\n {\r\n messageContent: chatStart?.messageContent || '',\r\n messageOwnerName: chatStart?.messageSenderName || '',\r\n messageDateUtc: chatStart?.messageDateUtc,\r\n messageSide: MessageSideEnum.ClientUser\r\n }\r\n ] : []);\r\n const [textareaRows, setTextareaRows] = useState(1);\r\n const [newMessage, setNewMessage] = useState(''); // Mesaj girişi için state\r\n const [sessionEnded, setSessionEnded] = useState(false);\r\n const [isTyping, setIsTyping] = useState(false); // Kullanıcı yazıyor mu?\r\n\r\n\r\n const query = new URLSearchParams(useLocation().search);\r\n const guid = query.get('guid');\r\n const ServiceId = query.get('hId');\r\n\r\n const isChatStarted = useRef(false);\r\n\r\n const startChat = async () => {\r\n if (isChatStarted.current) {\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n const newConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(GlobalOperations.SignalRBaseUrl + \"/signalr\", {\r\n transport: signalR.HttpTransportType.WebSockets\r\n })\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withAutomaticReconnect([0, 2000, 10000, 30000]) // Custom reconnect intervals\r\n .build();\r\n\r\n newConnection.onclose(async () => {\r\n console.log(\"Connection lost. Attempting to reconnect...\");\r\n try {\r\n await newConnection.start();\r\n console.log(\"Reconnected!\");\r\n } catch (err) {\r\n console.error(\"Failed to reconnect:\", err);\r\n }\r\n });\r\n\r\n\r\n await newConnection.start();\r\n console.log(\"SignalR bağlantısı kuruldu\");\r\n const id = await newConnection.invoke(\"GetConnectionId\");\r\n GlobalOperations.ConnectionHubId = id;\r\n GlobalOperations.SignalRConnection = newConnection;\r\n\r\n if (GlobalOperations.SignalRConnection && GlobalOperations.ConnectionHubId && chatStart) {\r\n setClientUserName(chatStart.clientName);\r\n let request: SetSignalRSessionToChatSessionRequest = {\r\n serviceGuid: guid || '',\r\n serviceId: chatStart.serviceId || 0,\r\n sessionId: chatStart.sessionId || 0,\r\n signalRConnectionId: GlobalOperations.ConnectionHubId\r\n };\r\n\r\n let response: ApiBaseResponse | null =\r\n await SetSignalRSessionToChatSession(request);\r\n\r\n if (!response || !response.content || response.responseCode !== ResponseCode.OK) {\r\n return;\r\n }\r\n\r\n const startChatRequest = {\r\n serviceGuid: response.content.serviceGuid,\r\n serviceId: response.content.serviceId,\r\n sessionId: response.content.sessionId,\r\n connectionId: GlobalOperations.ConnectionHubId,\r\n hubList: response.content.hubList,\r\n clientName: response.content.clientName,\r\n clientId: response.content.clientId\r\n };\r\n\r\n setSessionId(response.content.sessionId);\r\n\r\n try {\r\n let response: boolean =\r\n await GlobalOperations.SignalRConnection.invoke(\"startChatFromClient\", startChatRequest);\r\n\r\n if (!response) {\r\n return;\r\n }\r\n\r\n console.log(\"SignalR ile startChatFromClient çağrısı başarılı.\");\r\n isChatStarted.current = true;\r\n } catch (error) {\r\n console.error('SignalR ile startChatFromClient çağrısı yapılamadı:', error);\r\n return;\r\n }\r\n } else {\r\n console.error(\"SignalR bağlantısı aktif değil. Bağlantı bekleniyor...\");\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isChatStarted.current) {\r\n startChat();\r\n }\r\n }, [chatStart, guid]);\r\n\r\n useEffect(() => {\r\n if (GlobalOperations.SignalRConnection && GlobalOperations.ConnectionHubId) {\r\n GlobalOperations.SignalRConnection.on('receiveMessageByAgent', (session: SendMessageByAgentResponse) => {\r\n if (sessionId !== session?.sessionId) return;\r\n\r\n const newAgentMessage: ClientSideMessages = {\r\n messageContent: session?.agentMessage || '',\r\n messageOwnerName: session?.agentName || '',\r\n messageDateUtc: session.messageDateUtc,\r\n messageSide: MessageSideEnum.Agent\r\n };\r\n\r\n setMessages(prevMessages => [...prevMessages, newAgentMessage]);\r\n //setShowExportPdf(true); // TODO ilerleyein dönemde açılabilir. raporu pdf e aktarma özelliği\r\n });\r\n\r\n GlobalOperations.SignalRConnection.on('endSession4Client', (session: SendMessageByAgentResponse) => {\r\n GlobalOperations.ActiveSessionId = 0;\r\n // Oturum sonlandığında bu state'i true yapıyoruz.\r\n setSessionEnded(true);\r\n });\r\n\r\n GlobalOperations.SignalRConnection.on('changeAgentTyping4Client', (session: ChangeAgentTypingResponse) => {\r\n // Eğer agent yazıyorsa isTyping'i true yap, değilse false yap\r\n setIsTyping(session.isTyping);\r\n\r\n });\r\n\r\n return () => {\r\n if (GlobalOperations.SignalRConnection != null) {\r\n GlobalOperations.SignalRConnection.off('receiveMessageByAgent');\r\n GlobalOperations.SignalRConnection.off('endSession4Client');\r\n GlobalOperations.SignalRConnection.off('changeAgentTyping4Client');\r\n }\r\n };\r\n }\r\n }, [GlobalOperations.SignalRConnection, sessionId]);\r\n\r\n const handleNewMessage = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (newMessage.trim()) {\r\n sendMessageOverSignalR(newMessage);\r\n }\r\n };\r\n\r\n const sendMessageOverSignalR = async (message: string) => {\r\n\r\n message = message?.trim();\r\n let request: SendMessageByClientUserRequest = {\r\n messageContent: message,\r\n serviceGuid: guid || '',\r\n serviceId: Number(ServiceId),\r\n sessionId: Number(sessionId)\r\n };\r\n\r\n if (GlobalOperations.SignalRConnection == null) {\r\n console.error(\"SignalR bağlantısı yok.\");\r\n return;\r\n }\r\n\r\n let response: boolean = await GlobalOperations.SignalRConnection.invoke(\"sendMessageByClientUser\", request);\r\n if (!response) return;\r\n\r\n const newClientMessage: ClientSideMessages = {\r\n messageContent: message,\r\n messageOwnerName: clientUserName,\r\n messageDateUtc: Date.now(),\r\n messageSide: MessageSideEnum.ClientUser\r\n };\r\n\r\n setMessages([...messages, newClientMessage]);\r\n setNewMessage(''); // Mesaj gönderildikten sonra text alanı boşaltılıyor\r\n setTextareaRows(1);\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && !e.shiftKey) {\r\n e.preventDefault();\r\n handleNewMessage(e as any);\r\n } else if (e.key === 'Enter' && e.shiftKey) {\r\n setTextareaRows(prevRows => prevRows + 1);\r\n }\r\n };\r\n\r\n const handleIconClick = () => {\r\n handleNewMessage({ preventDefault: () => { } } as React.FormEvent);\r\n };\r\n\r\n useEffect(() => {\r\n if (messagesEndRef.current) {\r\n messagesEndRef.current.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n }, [messages]);\r\n\r\n const generatePdf = async () => {\r\n const input = chatContentRef.current;\r\n if (!input) return;\r\n\r\n // Tüm içeriği yakalayarak bir canvas oluşturuyoruz\r\n const canvas = await html2canvas(input, {\r\n scrollX: 0,\r\n scrollY: 0, // Sayfanın tam üstünden yakalama\r\n width: input.scrollWidth, // Tüm genişlik\r\n height: input.scrollHeight // Tüm yüksekliği yakalama\r\n });\r\n\r\n const imgData = canvas.toDataURL('image/png');\r\n const pdf = new jsPDF('p', 'mm', 'a4'); // PDF oluşturma\r\n const pageHeight = pdf.internal.pageSize.height; // PDF sayfası yüksekliği\r\n const pageWidth = pdf.internal.pageSize.width; // PDF sayfası genişliği\r\n const imgWidth = pageWidth - 20; // Görüntü PDF'de kaplayacak genişlik\r\n const imgHeight = (canvas.height * imgWidth) / canvas.width; // Oranlı yükseklik\r\n\r\n let heightLeft = imgHeight; // Kalan yükseklik\r\n let position = 0; // İlk sayfanın başlangıç pozisyonu\r\n\r\n // İlk sayfayı ekliyoruz\r\n pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight);\r\n heightLeft -= pageHeight;\r\n\r\n // Daha fazla içerik varsa, yeni sayfalar ekliyoruz\r\n while (heightLeft > 0) {\r\n position = heightLeft - imgHeight;\r\n pdf.addPage(); // Yeni sayfa ekleme\r\n pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight); // Yeni sayfa içeriği\r\n heightLeft -= pageHeight;\r\n }\r\n\r\n // PDF'yi kaydediyoruz\r\n pdf.save('chat.pdf');\r\n };\r\n\r\n useEffect(() => {\r\n if (isTyping && messagesEndRef.current) {\r\n messagesEndRef.current.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n }, [isTyping]);\r\n\r\n\r\n\r\n const linkify = (text: string) => {\r\n // Hem http, https ile başlayan, hem de www. ile başlayan linkleri yakalamak için regex\r\n const urlRegex = /(\\b(https?:\\/\\/|www\\.)[^\\s]+)/g;\r\n\r\n return text.replace(urlRegex, (url) => {\r\n // Eğer link www. ile başlıyorsa, başına http:// ekle\r\n if (url.startsWith('www.')) {\r\n return `${url}`;\r\n }\r\n\r\n // Eğer http veya https ile başlıyorsa, direkt a tagına dönüştür\r\n return `${url}`;\r\n });\r\n };\r\n\r\n\r\n const allowedDocumentTypes = [\r\n // PDF\r\n 'application/pdf',\r\n\r\n // Word Documents\r\n 'application/msword', // .doc\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx\r\n\r\n // Excel Files\r\n 'application/vnd.ms-excel', // .xls\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // .xlsx\r\n\r\n // Image Files\r\n 'image/jpeg', // .jpg, .jpeg\r\n 'image/png', // .png\r\n 'image/gif' // .gif\r\n ];\r\n\r\n\r\n const handleSuccess = (response: FileUploadResponse) => {\r\n const fileUrl = `${GlobalOperations.BaseUrl}${response.uploadedFileUrl}`;\r\n\r\n // 'fileUrl:' formatında mesaj oluşturma\r\n const messageContent = `fileUrl:'${fileUrl}'`;\r\n\r\n // Bu bileşeni SignalR ile diğer kullanıcılara mesaj olarak gönder\r\n sendMessageOverSignalR(messageContent);\r\n };\r\n\r\n\r\n\r\n\r\n const handleError = (error: string) => {\r\n alert('Yükleme hatası: ' + error);\r\n };\r\n\r\n\r\n\r\n return (\r\n \r\n {loading ? (\r\n
    \r\n

    Yükleniyor...

    \r\n
    \r\n ) : sessionEnded ? ( // Oturum sonlandığında gösterilecek mesaj\r\n
    \r\n

    Oturum sonlanmıştır

    \r\n

    Yeniden oturum oluşturmak için sayfayı yenileyiniz.

    \r\n
    \r\n\r\n ) : (\r\n <>\r\n
    \r\n {messages[0]?.messageOwnerName}{' '}\r\n {new Date(messages[0]?.messageDateUtc).toLocaleTimeString()}\r\n
    \r\n\r\n
    \r\n {messages.map((msg, index) => {\r\n const isFileMessage = msg.messageContent.startsWith('fileUrl:'); // fileUrl ile mi başlıyor?\r\n\r\n return (\r\n \r\n {/* Eğer mesaj fileUrl ile başlıyorsa RenderMessageContent ile göster */}\r\n {isFileMessage ? (\r\n // Dosya URL'sini msg.messageContent'ten çıkaralım\r\n \r\n ) : (\r\n // Normal mesajlar için\r\n
    \r\n )}\r\n\r\n {/* Mesaj zamanı */}\r\n
    \r\n {new Date(msg.messageDateUtc).toLocaleString()}\r\n
    \r\n
    \r\n );\r\n })}\r\n\r\n\r\n {/* Eğer isTyping true ise yazıyor bubble'ı göstereceğiz */}\r\n {isTyping && (\r\n
    \r\n Yazıyor...\r\n
    \r\n )}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n } // Font Awesome ikonu\r\n customStyle={{\r\n fontSize: '20px',\r\n color: '#2980b9',\r\n cursor: 'pointer',\r\n marginRight: '10px',\r\n flexShrink: 0,\r\n height: '10px',\r\n width: '10px',\r\n padding: '20px',\r\n textAlign: 'center',\r\n display: 'flex', // Flexbox ile ortalama\r\n alignItems: 'center', // Dikey ortalama\r\n justifyContent: 'center', // Yatay ortalama \r\n }}\r\n />\r\n setNewMessage(value)}\r\n showHeader={false}\r\n />\r\n \r\n {showExportPdf && (\r\n \r\n )}\r\n
    \r\n\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ChatScreen;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useParams, useLocation } from 'react-router-dom';\r\nimport UserForm from './UserForm';\r\nimport ChatScreen from './ChatScreen';\r\nimport { StartChatResponse } from '../../Model/Response/ClientUser/StartChatResponse';\r\nimport { GetServiceDetailResponse } from '../../Model/Response/MusteriKurumTanim/GetServiceDetailResponse';\r\nimport { GetServiceDetailRequest } from '../../Model/Request/MusteriKurumTanim/GetServiceDetailRequest';\r\nimport { ApiBaseResponse, ResponseCode } from '../../Model/Response/Common/ApiBaseResponse';\r\nimport { GetServiceDetail } from '../../Controller/Api/MusteriKurumTanimController'; \r\n\r\nconst WebChatPage: React.FC = () => {\r\n const [isChatActive, setIsChatActive] = useState(false);\r\n const [messages, setMessages] = useState(null);\r\n const [serviceDetail, setServiceDetail] = useState(null);\r\n const [isWorkingTime, setIsWorkingTime] = useState(true);\r\n const [loading, setLoading] = useState(true);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n\r\n const { lang } = useParams<{ lang: string }>();\r\n const query = new URLSearchParams(useLocation().search);\r\n const hId = query.get('hId');\r\n const guid = query.get('guid');\r\n\r\n useEffect(() => {\r\n const fetchServiceDetail = async () => {\r\n if (!hId || !guid) {\r\n setErrorMessage('Gerekli parametreler eksik');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n const request: GetServiceDetailRequest = {\r\n serviceId: Number(hId),\r\n serviceGuid: guid\r\n };\r\n\r\n try {\r\n let response: ApiBaseResponse | null = await GetServiceDetail(request);\r\n\r\n if (response == null || response.content == null || response.responseCode !== ResponseCode.OK) {\r\n setErrorMessage(response?.text || 'Bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n setServiceDetail(response.content);\r\n setIsWorkingTime(response.content.isDigitalAgentAtWorkingTime);\r\n document.title = response.content.clientName;\r\n\r\n if (!response.content.isDigitalAgentAtWorkingTime) {\r\n setErrorMessage(response.content.digitalAgentOutOfWorkingTimeMessage || 'Çalışma saati dışında.');\r\n }\r\n } catch (error) {\r\n console.error('API hatası:', error);\r\n setErrorMessage('Bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.');\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n fetchServiceDetail();\r\n }, [hId, guid]);\r\n\r\n const handleFormSubmit = async (chatResponse: StartChatResponse) => {\r\n setMessages(chatResponse);\r\n setIsChatActive(true);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n
    \r\n

    Yükleniyor...

    \r\n
    \r\n );\r\n }\r\n\r\n if (errorMessage) {\r\n return (\r\n
    \r\n

    ') }} />\r\n

    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {!isChatActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\n \r\nexport default WebChatPage;\r\n","import { GetServiceDetailRequest } from \"../../Model/Request/MusteriKurumTanim/GetServiceDetailRequest\";\r\nimport { GetClientsTreeViewResponse } from \"../../Model/Response/ClientAgent/GetClientsTreeViewResponse\";\r\nimport { ApiBaseResponse } from \"../../Model/Response/Common/ApiBaseResponse\";\r\nimport { GetClientsStructureByCityIdResponse } from \"../../Model/Response/MusteriKurumTanim/GetClientsStructureByCityIdResponse\";\r\nimport { GetServiceDetailResponse } from \"../../Model/Response/MusteriKurumTanim/GetServiceDetailResponse\";\r\nimport { GlobalOperations } from \"../Common/GlobalOperations\";\r\n\r\nexport async function GetServiceDetail(request: GetServiceDetailRequest): Promise | null> {\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/MusteriKurumTanim/GetServiceDetail\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function GetClientsStructureByCityId(ClientId: number, CityId: number): Promise | null> {\r\n \r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/MusteriKurumTanim/GetClientsStructureByCityId/\" + ClientId + '/' + CityId,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n }\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function GetClientsTreeView(CompanyId: number): Promise | null> {\r\n\r\n \r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/MusteriKurumTanim/GetClientsTreeView/\" + CompanyId,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n }\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}","import { GlobalOperations } from \"../Common/GlobalOperations\";\r\nimport { LoginControlByUserGuidResponse } from \"../../Model/Response/ClientAgent/LoginControlByUserGuidResponse\";\r\nimport { ApiBaseResponse } from \"../../Model/Response/Common/ApiBaseResponse\";\r\nimport { LoginControlByUserGuidRequest } from \"../../Model/Request/ClientAgent/LoginControlByUserGuidRequest\";\r\nimport { GetActiveSessionsOfAgentResponse } from \"../../Model/Response/ClientAgent/GetActiveSessionsOfAgentResponse\";\r\nimport { GetChatSessionDetailResponse } from \"../../Model/Response/ClientAgent/GetChatSessionDetailResponse\";\r\nimport { AssingHubIdToAlbUserRequest } from \"../../Model/Request/ClientAgent/AssingHubIdToAlbUserRequest\";\r\nimport { ReportSessionByAlbinaSoftAgentRequest } from \"../../Model/Request/ClientAgent/ReportSessionByAlbinaSoftAgentRequest\";\r\nimport { ReportSessionByAlbinaSoftAgentRequestResponse } from \"../../Model/Response/ClientAgent/ReportSessionByAlbinaSoftAgentRequestResponse\";\r\nimport { GetExistingWebChatReportsForAlbinaSoftAgentResponse } from \"../../Model/Response/ClientAgent/GetExistingWebChatReportsForAlbinaSoftAgentResponse\";\r\nimport { GetExistingWebChatReportsForAlbinaSoftAgentRequest } from \"../../Model/Request/ClientAgent/GetExistingWebChatReportsForAlbinaSoftAgentRequest\";\r\nimport { AddChatSessionToExistingReportRequest } from \"../../Model/Request/ClientAgent/AddChatSessionToExistingReportRequest\";\r\n\r\n\r\nexport async function LoginControlByUserGuid(request: LoginControlByUserGuidRequest): Promise | null> {\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/AlbinaSoftCMYonetim/LoginControlByUserGuid\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport async function GetActiveSessionsOfAgent(): Promise | null> {\r\n\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/GetActiveSessionsOfAgent\",\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n }\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function GetChatSessionDetail(SessionId: number): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/GetChatSessionDetail/\" + SessionId,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n }\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function AssingHubIdToAlbUser(request: AssingHubIdToAlbUserRequest): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/AssingHubIdToAlbUser\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport async function ReportSessionByAlbinaSoftAgent(request: ReportSessionByAlbinaSoftAgentRequest): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/ReportSessionByAlbinaSoftAgent\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport async function GetExistingWebChatReportsForAlbinaSoftAgent(request: GetExistingWebChatReportsForAlbinaSoftAgentRequest): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/GetExistingWebChatReportsForAlbinaSoftAgent\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport async function AddChatSessionToExistingReport(request: AddChatSessionToExistingReportRequest): Promise | null> {\r\n\r\n if (GlobalOperations.UserToken === null)\r\n return null;\r\n\r\n let response = await fetch(GlobalOperations.BaseUrl + \"api/Chat/AddChatSessionToExistingReport\",\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': GlobalOperations.UserToken\r\n\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n let data: ApiBaseResponse = await response.json();\r\n return data;\r\n}","import React, { createContext, useContext, useState, ReactNode, useEffect } from 'react';\r\nimport * as signalR from \"@microsoft/signalr\";\r\n\r\nimport { GlobalOperations } from '../../Controller/Common/GlobalOperations';\r\nimport { StartNewSessionResponse } from '../../Model/Response/SignalR/StartNewSessionResponse';\r\nimport { SendMessageByClientUserResponse } from '../../Model/Response/SignalR/SendMessageByClientUserResponse';\r\nimport { GetChatSessionDetailResponse } from '../../Model/Response/ClientAgent/GetChatSessionDetailResponse';\r\nimport { EndSessionByAgentResponse } from '../../Model/Response/HubResponses/EndSessionByAgentResponse';\r\nimport { ChangeAgentTypingRequest } from '../../Model/Request/SignalR/ChangeAgentTypingRequest';\r\nimport { ChangeAgentTypingResponse } from '../../Model/Response/SignalR/ChangeAgentTypingResponse';\r\nimport { DisplayType, StatusEnum, useShowStatusMessage } from '../Components/CoreComponents/StatusMessage';\r\n\r\n// SessionManagement modeli\r\nexport interface SessionManagement {\r\n sessionId: number;\r\n clientCompanyName: string;\r\n clientId: number;\r\n serviceId: number;\r\n hasNewMessage: boolean;\r\n}\r\n\r\n// Mesajları temsil eden model\r\nexport interface AgentSideMessages {\r\n messageContent: string;\r\n messageOwnerName: string;\r\n messageDateUtc: number;\r\n messageSide: MessageSideEnum;\r\n}\r\n\r\n// Mesajın hangi taraftan geldiğini belirten enum\r\nexport enum MessageSideEnum {\r\n ClientUser = 1,\r\n Agent = 2\r\n}\r\n\r\n// ChatContext'in tipi\r\ninterface ChatContextType {\r\n messages: AgentSideMessages[];\r\n setMessages: (messages: AgentSideMessages[]) => void;\r\n addMessage: (message: AgentSideMessages) => void;\r\n startSignalR: () => Promise;\r\n activeSessions: SessionManagement[];\r\n setActiveSessions: (sessions: SessionManagement[]) => void;\r\n currentSession: GetChatSessionDetailResponse | null; // null olabilir\r\n setCurrentSession: (session: GetChatSessionDetailResponse | null) => void; // null olabilir\r\n removeSessionById: (sessionId: number) => void; // yeni eklenen fonksiyon\r\n\r\n typingUsers: { [sessionId: number]: string[] }; // Oturum bazında yazan kullanıcıların listesi\r\n setTypingUsers: (sessionId: number, userName: string, isTyping: boolean) => void; // userId parametresini ekliyoruz\r\n\r\n\r\n setGlobalInputValue: (value: string) => void;\r\n checkBeforeSwitchingSession: () => boolean;\r\n}\r\n\r\n\r\n// ChatContext oluşturuluyor\r\nconst ChatContext = createContext(undefined);\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport const ChatProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\r\n\r\n const [messages, setMessages] = useState([]);\r\n const [connection, setConnection] = useState(null);\r\n const [activeSessions, setActiveSessions] = useState([]);\r\n const [currentSession, setCurrentSession] = useState(null);\r\n const [typingUsers, setTypingUsersState] = useState<{ [sessionId: number]: string[] }>({});\r\n\r\n // Yeni mesaj ekleme fonksiyonu\r\n const addMessage = (message: AgentSideMessages) => {\r\n setMessages(prevMessages => [...prevMessages, message]);\r\n };\r\n\r\n // ChatContext'in içine oturum silme fonksiyonu ekliyoruz\r\n const removeSessionById = (sessionId: number) => {\r\n setActiveSessions((prevSessions: SessionManagement[]) =>\r\n prevSessions.filter(session => session.sessionId !== sessionId)\r\n );\r\n };\r\n\r\n //typeing işlemini yapan kullanıcı id ve adı buraya gelir\r\n const setTypingUsers = async (sessionId: number, userName: string, isTyping: boolean) => {\r\n\r\n if (GlobalOperations.SignalRConnection == null)\r\n return;\r\n\r\n // Mevcut yazma durumu varsa kontrol et\r\n const currentTypingUsers = typingUsers[sessionId] || [];\r\n\r\n const isUserTyping = currentTypingUsers.includes(userName);\r\n\r\n // Eğer durum aynı ise herhangi bir işlem yapma\r\n if (isTyping === isUserTyping) {\r\n return; // Durum değişmediyse çık\r\n }\r\n\r\n let request: ChangeAgentTypingRequest = {\r\n agentName: userName,\r\n auth: GlobalOperations.UserToken,\r\n isTyping: isTyping,\r\n sessionId: sessionId\r\n }\r\n\r\n let response: boolean = await GlobalOperations.SignalRConnection.invoke(\"changeIsAgentTyping\", request);\r\n\r\n\r\n\r\n };\r\n\r\n const [inputValue, setGlobalInputValue] = useState('');\r\n\r\n\r\n const checkBeforeSwitchingSession = (): boolean => {\r\n if (inputValue.trim()) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n // SignalR bağlantısını başlatan fonksiyon\r\n const startSignalR = async () => {\r\n if (GlobalOperations.SignalRConnection) {\r\n console.log(\"SignalR zaten başlatıldı\");\r\n return;\r\n }\r\n\r\n try {\r\n const newConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(GlobalOperations.SignalRBaseUrl + \"/signalr\", {\r\n transport: signalR.HttpTransportType.WebSockets\r\n })\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withAutomaticReconnect([0, 2000, 10000, 30000]) // Bağlantı koparsa yeniden bağlanma denemesi yapar\r\n .build();\r\n\r\n setConnection(newConnection);\r\n\r\n // Bağlantı durumlarını dinleyelim\r\n newConnection.onreconnecting((error) => {\r\n console.warn(\"SignalR yeniden bağlanmaya çalışıyor...\", error);\r\n // Burada bir UI gösterimi yapılabilir\r\n });\r\n\r\n newConnection.onreconnected((connectionId) => {\r\n console.log(\"SignalR yeniden bağlandı. Bağlantı ID'si:\", connectionId);\r\n // UI'da bağlantının yeniden sağlandığına dair bilgi gösterebilirsiniz\r\n });\r\n\r\n newConnection.onclose((error) => {\r\n console.error(\"SignalR bağlantısı kapandı:\", error);\r\n // Kullanıcıya bağlantının koptuğunu belirtmek için bir hata mesajı gösterebilirsiniz\r\n });\r\n\r\n newConnection.onclose(async () => {\r\n console.log(\"Connection lost. Attempting to reconnect...\");\r\n try {\r\n await newConnection.start();\r\n const id = await newConnection.invoke(\"GetConnectionId\");\r\n GlobalOperations.ConnectionHubId = id;\r\n console.log(\"Reconnected!\");\r\n } catch (err) {\r\n console.error(\"Failed to reconnect:\", err);\r\n }\r\n });\r\n \r\n\r\n await newConnection.start();\r\n console.log(\"SignalR bağlantısı kuruldu\");\r\n\r\n // Bağlantı ID'sini al\r\n const id = await newConnection.invoke(\"GetConnectionId\");\r\n GlobalOperations.ConnectionHubId = id;\r\n GlobalOperations.SignalRConnection = newConnection;\r\n\r\n // Yeni oturum başladığında çağrılır\r\n newConnection.on('newSessionStart', (session: StartNewSessionResponse) => {\r\n if (!session) return;\r\n\r\n const newSession: SessionManagement = {\r\n sessionId: Number(session.sessionId),\r\n clientCompanyName: session.clientName || '',\r\n clientId: Number(session.clientId),\r\n serviceId: Number(session.serviceId),\r\n hasNewMessage: true\r\n };\r\n\r\n\r\n setActiveSessions((prevSessions) => {\r\n // Oturum listesinde zaten var mı kontrol et\r\n const sessionExists = prevSessions.some(existingSession => existingSession.sessionId === newSession.sessionId);\r\n\r\n if (sessionExists) {\r\n // Zaten varsa, sadece hasNewMessage özelliğini true yap\r\n return prevSessions.map(existingSession =>\r\n existingSession.sessionId === newSession.sessionId\r\n ? { ...existingSession, hasNewMessage: true }\r\n : existingSession\r\n );\r\n } else {\r\n // Yoksa yeni oturumu ekle\r\n return [...prevSessions, newSession];\r\n }\r\n });\r\n\r\n\r\n playBeepSound(); // Yeni oturum için ses çal\r\n });\r\n\r\n // Müşteri tarafından yeni mesaj geldiğinde çağrılır\r\n newConnection.on('receiveMessageByClientUser', (message: SendMessageByClientUserResponse) => {\r\n if (message.sessionId == GlobalOperations.ActiveSessionId) {\r\n // Aktif oturuma gelen mesajı ekle\r\n const newMessage: AgentSideMessages = {\r\n messageContent: message.clientUserMessage,\r\n messageOwnerName: message.clientUserName,\r\n messageDateUtc: message.messageDateUtc,\r\n messageSide: MessageSideEnum.ClientUser\r\n };\r\n addMessage(newMessage);\r\n } else {\r\n // Oturum mesajı başka bir oturumdaysa yeni mesaj olduğunu belirt\r\n setActiveSessions(prevSessions =>\r\n prevSessions.map(session =>\r\n session.sessionId === message.sessionId\r\n ? { ...session, hasNewMessage: true }\r\n : session\r\n )\r\n );\r\n\r\n\r\n }\r\n });\r\n\r\n newConnection.on('endSession4Agent', (session: EndSessionByAgentResponse) => {\r\n // Gelen oturum ID'si ile aktif oturum ID'si eşleşiyor mu kontrol edin\r\n if (session.sessionId === GlobalOperations.ActiveSessionId) {\r\n // Oturumu yan paneldeki listeden kaldırmak için removeSessionById fonksiyonunu çağırın\r\n removeSessionById(session.sessionId);\r\n\r\n // Aktif oturumu sıfırlayın, çünkü bu oturum sonlandı\r\n GlobalOperations.ActiveSessionId = 0;\r\n\r\n // Mesaj listesini temizleyin\r\n setMessages([]);\r\n } else {\r\n // Eğer aktif oturum değilse, sadece yan paneldeki listeden oturumu kaldırın\r\n removeSessionById(session.sessionId);\r\n }\r\n });\r\n\r\n newConnection.on('changeAgentTyping4Agent', (session: ChangeAgentTypingResponse) => {\r\n\r\n setTypingUsersState(prevState => {\r\n const currentTypingUsers = prevState[session.sessionId] || [];\r\n if (session.isTyping) {\r\n // Eğer kullanıcı yazıyorsa ve listede yoksa ekle\r\n if (!currentTypingUsers.includes(session.agentName)) {\r\n return { ...prevState, [session.sessionId]: [...currentTypingUsers, session.agentName] };\r\n }\r\n } else {\r\n // Eğer kullanıcı yazmayı bıraktıysa listeden çıkar\r\n return {\r\n ...prevState,\r\n [session.sessionId]: currentTypingUsers.filter(user => user !== session.agentName),\r\n };\r\n }\r\n return prevState;\r\n });\r\n });\r\n\r\n\r\n } catch (error) {\r\n console.error(\"SignalR başlatma hatası:\", error);\r\n }\r\n };\r\n\r\n // Beep sesi çalma fonksiyonu\r\n const playBeepSound = () => {\r\n const beepSound = new Audio(\"data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=\");\r\n beepSound.play().catch(error => console.error(\"Ses çalma hatası:\", error));\r\n };\r\n\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\n// ChatContext kullanımı\r\nexport const useChat = () => {\r\n const context = useContext(ChatContext);\r\n if (context === undefined) {\r\n throw new Error('useChat must be used within a ChatProvider');\r\n }\r\n return context;\r\n};\r\n","export interface GetChatSessionDetailResponse {\r\n sessionId: number\r\n sessionOwnerTel: string\r\n sessionOwnerName: string\r\n clientName: string\r\n clientId: number\r\n serviceId: number\r\n sessionChannel: SessionChannelEnum\r\n gupShupName: string\r\n waPhoneNo: string\r\n chatHubId: string\r\n messageList: Message[]\r\n authorizedOperatorsList: AuthorizedOperatorsList[]\r\n}\r\n\r\nexport interface Message {\r\n messageFrom: string\r\n messageDate: string\r\n messageContent: string\r\n side: MesajiGonderenTarafEnum\r\n}\r\n\r\nexport interface AuthorizedOperatorsList {\r\n id: number\r\n name: string\r\n guid: string\r\n}\r\n\r\n\r\nexport enum MesajiGonderenTarafEnum {\r\n Tanimsiz = 0,\r\n AlbinaSoft = 1,\r\n MusteriKurumKullanicisi = 2,\r\n MusteriKurumMusterisi = 3,\r\n User,\r\n}\r\n\r\nexport enum SessionChannelEnum {\r\n Tanimsiz = 0,\r\n WhatsApp = 9,\r\n WebChat = 10,\r\n}\r\n\r\n","import React, { useState, useEffect, ReactNode, createContext, useContext } from 'react';\r\n\r\n// Durumlar için enum\r\nexport enum StatusEnum {\r\n SUCCESS = 'Başarılı',\r\n INFO = 'Bilgi',\r\n ERROR = 'Hata'\r\n}\r\n\r\n// Gösterim tipi için enum\r\nexport enum DisplayType {\r\n TOP = 'top',\r\n CENTER = 'center'\r\n}\r\n\r\n// Renkler için eşleştirme\r\nconst statusColors: { [key in StatusEnum]: string } = {\r\n [StatusEnum.SUCCESS]: 'green',\r\n [StatusEnum.INFO]: 'yellow',\r\n [StatusEnum.ERROR]: 'red'\r\n};\r\n\r\n// Bileşen props tanımı\r\ninterface StatusMessageProps {\r\n header: string;\r\n text: string;\r\n status: StatusEnum;\r\n direction?: 'up' | 'down';\r\n duration?: number;\r\n displayType?: DisplayType;\r\n onClose: () => void;\r\n}\r\n\r\nconst StatusMessage: React.FC = ({\r\n header,\r\n text,\r\n status,\r\n direction = 'down',\r\n duration = 2000,\r\n displayType = DisplayType.TOP,\r\n onClose\r\n}) => {\r\n const [visible, setVisible] = useState(true);\r\n const [exiting, setExiting] = useState(false);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setExiting(true);\r\n const exitAnimationDuration = 500; // Çıkış animasyonu süresi (ms)\r\n setTimeout(() => {\r\n setVisible(false);\r\n onClose();\r\n }, exitAnimationDuration);\r\n }, duration);\r\n return () => clearTimeout(timer);\r\n }, [duration, onClose]);\r\n\r\n const containerStyle: React.CSSProperties = {\r\n backgroundColor: statusColors[status],\r\n color: 'white',\r\n padding: '16px',\r\n position: 'fixed',\r\n zIndex: 99999, \r\n borderRadius: '8px',\r\n textAlign: 'center',\r\n transition: 'transform 0.5s ease-out, opacity 0.5s ease-out',\r\n transform: visible\r\n ? direction === 'down'\r\n ? 'translateY(0)'\r\n : 'translateY(0)'\r\n : direction === 'down'\r\n ? 'translateY(-100%)'\r\n : 'translateY(100%)',\r\n ...(displayType === DisplayType.CENTER ? { top: '50%', left: '50%', transform: visible ? 'translate(-50%, -50%)' : 'translate(-50%, -150%)', transition: exiting ? 'transform 0.5s ease-out, opacity 0.5s ease-out' : 'none' } : {}),\r\n ...(displayType === DisplayType.TOP ? { top: '10px', left: '50%', transform: visible ? 'translateX(-50%)' : 'translateX(-50%) translateY(-100%)' } : {}),\r\n ...(exiting ? { transform: 'translate(-50%, -150%) scale(0.5)', opacity: 0 } : {})\r\n };\r\n\r\n const backdropStyle: React.CSSProperties = {\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n zIndex: 1000,\r\n display: displayType === DisplayType.CENTER ? 'block' : 'none'\r\n };\r\n\r\n return (\r\n <>\r\n {displayType === DisplayType.CENTER &&
    }\r\n
    \r\n

    {header}

    \r\n

    {text}

    \r\n
    \r\n \r\n );\r\n};\r\n\r\n// Yardımcı fonksiyon\r\ninterface ShowMessageParams {\r\n header: string;\r\n text: string;\r\n status: StatusEnum;\r\n direction?: 'up' | 'down';\r\n duration?: number;\r\n displayType?: DisplayType;\r\n}\r\n\r\nconst ShowMessageContext = createContext<(params: ShowMessageParams) => void>(() => {});\r\n\r\nexport const useShowStatusMessage = () => useContext(ShowMessageContext);\r\n\r\n// Wrapper bileşen\r\ninterface StatusMessageProviderProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport const StatusMessageProvider: React.FC = ({ children }) => {\r\n const [messages, setMessages] = useState>([]);\r\n const [nextId, setNextId] = useState(1);\r\n\r\n const showMessage = (params: ShowMessageParams) => {\r\n setMessages((prevMessages) => [\r\n ...prevMessages,\r\n { ...params, id: nextId }\r\n ]);\r\n setNextId((prevId) => prevId + 1);\r\n };\r\n\r\n const handleClose = (id: number) => {\r\n setMessages((prevMessages) => prevMessages.filter((msg) => msg.id !== id));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n {messages.map((message) => (\r\n handleClose(message.id)}\r\n />\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default StatusMessage;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GetActiveSessionsOfAgentResponse } from '../../Model/Response/ClientAgent/GetActiveSessionsOfAgentResponse';\r\nimport { GetActiveSessionsOfAgent, GetChatSessionDetail } from '../../Controller/Api/ClientAgentController';\r\nimport { ApiBaseResponse, ResponseCode } from '../../Model/Response/Common/ApiBaseResponse';\r\nimport { useChat, AgentSideMessages, MessageSideEnum, SessionManagement } from './ChatContext';\r\nimport { GetChatSessionDetailResponse, MesajiGonderenTarafEnum, Message } from '../../Model/Response/ClientAgent/GetChatSessionDetailResponse';\r\nimport { GlobalOperations } from '../../Controller/Common/GlobalOperations';\r\nimport MessageInput from './MessageInput'; // MessageInput bileşeninden fonksiyonu kullanıyoruz\r\nimport { DisplayType, StatusEnum, useShowStatusMessage } from '../Components/CoreComponents/StatusMessage';\r\n\r\n// SessionManagement modelini ekliyoruz \r\nconst Sidebar: React.FC = () => {\r\n const { activeSessions, setMessages, setActiveSessions, setCurrentSession, typingUsers ,checkBeforeSwitchingSession} = useChat(); // ChatContext'ten ilgili fonksiyonlar ve state'leri çekiyoruz\r\n const [loading, setLoading] = useState(false);\r\n\r\n // API'den aktif oturumları getirip set ediyoruz\r\n const fetchActiveSessions = async () => {\r\n setLoading(true);\r\n try {\r\n let response: ApiBaseResponse | null =\r\n await GetActiveSessionsOfAgent();\r\n\r\n if (!response || !response.content || response.responseCode !== ResponseCode.OK) {\r\n console.error('API çağrısı başarısız: Aktif oturumlar alınamadı.');\r\n return;\r\n }\r\n\r\n // Gelen veriyi SessionManagement formatına çeviriyoruz\r\n const sessions: SessionManagement[] = response.content.sessions.map(session => ({\r\n sessionId: Number(session.sessionId),\r\n clientCompanyName: session.clientCompanyName || '',\r\n clientId: Number(session.clientId),\r\n serviceId: Number(session.serviceId),\r\n hasNewMessage: false, // Varsayılan olarak yeni mesaj yok\r\n }));\r\n setActiveSessions(sessions); // Aktif oturumları güncelliyoruz\r\n } catch (error) {\r\n console.error('API çağrısı başarısız:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchActiveSessions(); // Bileşen ilk yüklendiğinde aktif oturumları getiriyoruz\r\n }, []);\r\n\r\n // Mesajları AgentSideMessages modeline dönüştüren yardımcı fonksiyon\r\n const mapToClientAgentMessages = (message: Message): AgentSideMessages => {\r\n return {\r\n messageContent: message.messageContent,\r\n messageOwnerName: message.messageFrom,\r\n messageDateUtc: new Date(message.messageDate).getTime(),\r\n messageSide: message.side === MesajiGonderenTarafEnum.AlbinaSoft ? MessageSideEnum.Agent : MessageSideEnum.ClientUser,\r\n };\r\n };\r\n const showStatusMessage = useShowStatusMessage();\r\n // Oturum seçildiğinde detaylarını getirip mesajları güncelliyoruz\r\n const handleSessionClick = async (sessionId: number) => {\r\n\r\n\r\n // MessageInput'taki checkBeforeSwitchingSession fonksiyonunu çağırıyoruz\r\n let canSwitch: boolean = checkBeforeSwitchingSession(); // True dönerse oturum değiştir\r\n if (!canSwitch) {\r\n showStatusMessage({\r\n header: 'Mesaj Alanında Metin Bulunuyor' ,\r\n text: 'Öncelikle Mesaj Alanında Bulunan Metni Gönderin veya Silin',\r\n status: StatusEnum.ERROR,\r\n direction: 'down',\r\n duration: 5000,\r\n displayType: DisplayType.TOP,\r\n });\r\n return;\r\n }\r\n\r\n console.log(\"Selected Session Id :\" + sessionId);\r\n GlobalOperations.ActiveSessionId = sessionId;\r\n\r\n try {\r\n const response: ApiBaseResponse | null =\r\n await GetChatSessionDetail(sessionId);\r\n\r\n if (!response || !response.content || response.responseCode !== ResponseCode.OK) {\r\n setCurrentSession(null); // Hata durumunda null set edelim\r\n return;\r\n }\r\n\r\n GlobalOperations.ClientId = response.content.clientId;\r\n GlobalOperations.ServiceId = response.content.serviceId;\r\n setCurrentSession(response.content);\r\n document.title = response.content.clientName;\r\n\r\n if (response.content?.messageList) {\r\n const mappedMessages = response.content.messageList.map(mapToClientAgentMessages);\r\n setMessages(mappedMessages); // Mesajları güncelliyoruz\r\n\r\n // Aktif oturumları güncelliyoruz, burada hasNewMessage'ı false yapıyoruz\r\n const updatedSessions = activeSessions.map((session: SessionManagement) =>\r\n session.sessionId === sessionId\r\n ? { ...session, hasNewMessage: false } // Eğer oturum id'leri eşleşiyorsa hasNewMessage'ı false yapıyoruz\r\n : session\r\n );\r\n setActiveSessions(updatedSessions); // Güncellenmiş oturumları set ediyoruz\r\n\r\n }\r\n } catch (error) {\r\n console.error('Oturum detaylarını alma hatası:', error);\r\n setCurrentSession(null); // Hata durumunda oturum verisini sıfırlayalım\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {GlobalOperations.UserName[0]?.toUpperCase()}\r\n
    \r\n
    \r\n {GlobalOperations.UserName}\r\n
    \r\n
    \r\n
    \r\n \r\n {loading ? (\r\n
  • Yükleniyor...
  • \r\n ) : activeSessions.length === 0 ? (\r\n
  • Aktif oturum yok
  • \r\n ) : (\r\n activeSessions.map((session) => (\r\n handleSessionClick(session.sessionId)}\r\n style={{\r\n backgroundColor: GlobalOperations.ActiveSessionId === session.sessionId ? '#2980b9' : '#34495e',\r\n color: GlobalOperations.ActiveSessionId === session.sessionId ? '#fff' : '#ecf0f1',\r\n padding: '12px',\r\n marginBottom: '10px',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n transition: 'background-color 0.3s ease',\r\n display: 'flex',\r\n alignItems: 'center',\r\n boxShadow: GlobalOperations.ActiveSessionId === session.sessionId ? '0 4px 6px rgba(0, 0, 0, 0.1)' : 'none',\r\n }}\r\n >\r\n
    \r\n
    \r\n {session.clientCompanyName}\r\n {session.hasNewMessage && (\r\n \r\n )}\r\n
    \r\n {/* Kullanıcı yazıyorsa bunu göster */}\r\n {typingUsers[session.sessionId]?.length > 0 && (\r\n
    \r\n {typingUsers[session.sessionId].join(', ')} yazıyor...\r\n
    \r\n )}\r\n
    \r\n\r\n \r\n ))\r\n )}\r\n \r\n \r\n
    \r\n Albinasoft Chat Yönetim Sistemi\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Sidebar;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { AgentSideMessages, MessageSideEnum, useChat } from './ChatContext';\r\nimport { GetChatSessionDetail } from '../../Controller/Api/ClientAgentController';\r\nimport { MesajiGonderenTarafEnum, Message } from '../../Model/Response/ClientAgent/GetChatSessionDetailResponse';\r\nimport { GlobalOperations } from '../../Controller/Common/GlobalOperations';\r\nimport RenderMessageContent from '../UserSide/renderMessageContent';\r\n\r\n// ClientSideMessages modelini tanımlıyoruz\r\nconst MessageList: React.FC = () => {\r\n const { messages, setMessages, addMessage } = useChat();\r\n const [loading, setLoading] = useState(false);\r\n const messageListRef = useRef(null);\r\n\r\n // API'den gelen verileri ClientSideMessages modeline dönüştüren yardımcı fonksiyon\r\n const mapToClientSideMessages = (message: Message): AgentSideMessages => {\r\n return {\r\n messageContent: message.messageContent,\r\n messageOwnerName: message.messageFrom,\r\n messageDateUtc: new Date(message.messageDate).getTime(), // UTC timestamp\r\n messageSide: message.side === MesajiGonderenTarafEnum.AlbinaSoft ? MessageSideEnum.Agent : MessageSideEnum.ClientUser,\r\n };\r\n };\r\n\r\n const fetchSessionDetails = async () => {\r\n if (GlobalOperations.ActiveSessionId != 0) {\r\n setLoading(true);\r\n try {\r\n let response = await GetChatSessionDetail(GlobalOperations.ActiveSessionId);\r\n if (response && response.content?.messageList) {\r\n // Mesajları ClientSideMessages modeline mapleyip setMessages'e ekliyoruz\r\n const mappedMessages = response.content.messageList.map(mapToClientSideMessages);\r\n setMessages(mappedMessages);\r\n }\r\n } catch (error) {\r\n console.error('Mesajları alma hatası:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchSessionDetails();\r\n\r\n }, [GlobalOperations.ActiveSessionId]);\r\n\r\n useEffect(() => {\r\n if (!loading && messageListRef.current) {\r\n messageListRef.current.scrollTop = messageListRef.current.scrollHeight;\r\n }\r\n }, [messages, loading]);\r\n\r\n const formatMessageDate = (dateUtc: number) => {\r\n const date = new Date(dateUtc);\r\n return new Intl.DateTimeFormat('tr-TR', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n }).format(date);\r\n };\r\n\r\n const linkify = (text: string) => {\r\n // Hem http, https ile başlayan, hem de www. ile başlayan linkleri yakalamak için regex\r\n const urlRegex = /(\\b(https?:\\/\\/|www\\.)[^\\s]+)/g;\r\n\r\n return text.replace(urlRegex, (url) => {\r\n // Eğer link www. ile başlıyorsa, başına http:// ekle\r\n if (url.startsWith('www.')) {\r\n return `${url}`;\r\n }\r\n\r\n // Eğer http veya https ile başlıyorsa, direkt a tagına dönüştür\r\n return `${url}`;\r\n });\r\n };\r\n\r\n\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n Yükleniyor...\r\n
    \r\n
    \r\n ) : messages.length === 0 ? (\r\n GlobalOperations.ActiveSessionId === 0 ? (\r\n
    \r\n Oturum kapatıldı. Başka bir oturum seçebilirsiniz\r\n
    \r\n ) : (\r\n
    \r\n Bir konuşma seçin\r\n
    \r\n )\r\n ) : (\r\n messages.map((message, index) => {\r\n const isAgent = message.messageSide === MessageSideEnum.Agent;\r\n const isFileMessage = message.messageContent.startsWith('fileUrl:'); // Dosya URL'si ile başlıyor mu?\r\n\r\n const bubbleStyle = {\r\n marginBottom: '10px',\r\n padding: '10px',\r\n borderRadius: isAgent ? '1.125rem 1.125rem 0 1.125rem' : '1.125rem 1.125rem 1.125rem 0',\r\n backgroundColor: isAgent ? '#2980b9' : '#333',\r\n color: '#fff',\r\n maxWidth: '60%',\r\n alignSelf: isAgent ? 'flex-end' : 'flex-start',\r\n textAlign: 'left' ,\r\n marginLeft: isAgent ? 'auto' : '0',\r\n marginRight: isAgent ? '0' : 'auto',\r\n } as React.CSSProperties;\r\n\r\n return (\r\n
    \r\n {isFileMessage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n {message.messageOwnerName}\r\n {formatMessageDate(message.messageDateUtc)}\r\n
    \r\n
    \r\n );\r\n })\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default MessageList;\r\n","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the actively focused element safely.\n *\n * @param doc the document to check\n */\n\nexport default function activeElement(doc) {\n if (doc === void 0) {\n doc = ownerDocument();\n }\n\n // Support: IE 9 only\n // IE9 throws an \"Unspecified error\" accessing document.activeElement from an